MoDou Blog

Thinking will not overcome fear but action will.

Lombok经常用,但是你知道它的原理是什么吗?

Lombok经常用,但是你知道它的原理是什么吗?

相信大家在项目中都使用过Lombok,因为能够简化我们许多的代码,但是该有的功能一点也不少。那么lombok到底是个什么呢,lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter方法啊,构造函数啊之类的,lombok的作用就是...

《沙盘模拟系列》JVM如何调优

《沙盘模拟系列》JVM如何调优

纸上得来终觉浅 绝知此事要躬行 我所在的公司基本上是没有机会进行JVM参数调优的,但是如果有些东西自己不亲身经历一下,看再多的理论知识也只能算是纸上谈兵,真正碰到问题的时候还是不知道该怎么分析。所以就自己制造一些问题然后看其现象,利用所学的知识事前推测,看现象是不是和自己推测的一样。这样不仅对自己所学的知识又是一次巩固,而且也能锻炼自己解决问题的能力(虽然问题是自己制造的)。 其...

几百万数据放入内存不会把系统撑爆吗?

几百万数据放入内存不会把系统撑爆吗?

在公司有一个需求是要核对一批数据,之前的做法是直接用SQL各种复杂操作给怼出来的,不仅时间慢,而且后期也不好维护,就算原作者来了过一个月估计也忘了SQL什么意思了,于是有一次我就想着问一下之前做这个需求的人为什么不将这些数据查出来后在内存里面做筛选呢?直接说了你不怕把内存给撑爆吗?此核算服务器是单独的服务器,配置是四核八G的,配置堆的大小是4G。本着怀疑的精神,就想要弄清楚几百万条数据真的放...

如何优雅的使用线程池

如何优雅的使用线程池

线程池不仅在项目中是非常常用的一项技术而且在面试中基本上也是必问的知识点,接下来跟着我一起来巩固一下线程池的相关知识。在了解线程池之前我们先了解一下什么是进程什么是线程 进程 程序:一般是一组CPU指令的集合构成的文件,静态存储在诸如硬盘之类的存储设备上 进程:当一个程序要被计算机运行时,就是在内存中产生该程序的一个运行时实例,我们就把这个实例叫做进程 用户下达运行程序的命...

看了这篇文章,再也不怕关于树的面试题了

看了这篇文章,再也不怕关于树的面试题了

基础知识就像是一座大楼的地基,它决定了我们技术的高度 在面试中,关于树的问题是很多的,例如简单点的会问你关于树的前中后序的遍历顺序是怎样的?难点会让你手写关于树的算法题,又或是在Java后端面试中也会涉及到一些树的知识,例如在HashMap中产生哈希冲突生成的链表到一定条件下为什么要转成红黑树?,为什么要用红黑树而不用B+树呢?在Mysql中索引的存储为什么用B+树而不用其他树等等...

《后端也要懂一点前端系列》React入门

《后端也要懂一点前端系列》React入门

在上一篇文章中我们使用了webpack搭建项目并成功运行了起来,但是对于在公司使用而言这点是完全不够的,所以接下来我们就开始学习如何使用React框架来进行开发。本篇文章不会探讨原理,只是从一个新手的角度来介绍如何使用。如果没看我第一篇的可以先看我第一篇搭建项目的文章《后端也要懂一点前端系列》使用webpack搭建项目 React起源 以铜为鉴,可以正衣冠;以人为鉴,可以明得失...

《后端也要懂一点前端系列》使用webpack搭建项目

《后端也要懂一点前端系列》使用webpack搭建项目

笔者文笔功力尚浅,如有不妥,请慷慨指出,必定感激不尽 今天突然有兴致想要学习一下前端的技术,所以特此记录学习前端之路。由于之前在公司做的项目大部分都是关于JSP页面的增删改查,所以前端后端都是一个人来写的,对于前端还只是停留在js、html、css阶段,对于一些前端框架是一点也不了解,正好学习后端的时候遇到了cookie、session、token的问题,特此也简单的了解一下前端知...

一文彻底搞懂Cookie、Session、Token到底是什么

一文彻底搞懂Cookie、Session、Token到底是什么

笔者文笔功力尚浅,如有不妥,请慷慨指出,必定感激不尽 Cookie 洛:大爷,楼上322住的是马冬梅家吧? 大爷:马都什么? 夏洛:马冬梅。 大爷:什么都没啊? 夏洛:马冬梅啊。 大爷:马什么没? 夏洛:行,大爷你先凉快着吧。 在了解这三个概念之前我们先要了解HTTP是无状态的Web服务器,什么是无状态呢?就像上面夏洛特烦恼中经典的一幕对话一样,一次对话完成后下...

为什么重写了equals()也要重写hashCode()

为什么重写了equals()也要重写hashCode()

为什么重写了equals()也要重写hashCode() 笔者文笔功力尚浅,如有不妥,请慷慨指出,必定感激不尽 在Effective Java中第九条规定在覆盖equals()方法时总要覆盖hashCode()方法。这是为什么呢?接下来我们就介绍一下这两个方法。 Java中的equals()方法和hashCode()方法都是在Object类中的方法,而在Java中所有的类都是O...

学会这几道链表算法题,面试再也不怕手写链表了

学会这几道链表算法题,面试再也不怕手写链表了

学会这几道链表算法题,面试再也不怕手写链表了 笔者文笔功力尚浅,如有不妥,请慷慨指出,必定感激不尽 在面试的时候经常被问到让手写关于链表的代码,下面几个都是我在面试中被问到过的问题。当然我写的不一定是最优解,如果有更好的解决办法欢迎大家指出。 便于大家观看,我先将题目列出 删除链表中倒数第N个节点 链表反转 合并两个有序链表 求链表的中间节点 删除链表中...