强势归来 - jdk1.8中的HashMap

11 月 21 日
阅读 5 分钟
26
可以看到,除了将Entry对象换为了Node对象,其余核心属性未发生变化。事实上,Enrty对象和Node对象内部也没有任何区别,可以理解为只是换了个名字而已。但下面这点我们就要注意了,1.8中多出来了一个内部类:TreeNode

错误的尝试-HashMap1.7源码分析

10 月 31 日
阅读 6 分钟
146
HashMap,可以说是Java中最重要的集合之一,从jdk1.7到jdk1.8,经历了翻天覆地的变化,这其中发生了什么?我们从jdk1.7中的HashMap看起,一步步揭开其设计的面纱.相信看完会对你有一定帮助.

缺一不可 - equals & hashCode

10 月 15 日
阅读 1 分钟
172
首先,我们要知道这两个方法是做什么的,Java秉承着万物皆对象的理念,而Java中所有对象向上追溯,会有一个共同的祖先--Object类,而equals和hashCode正是Object类中的两个方法,足以证明其重要性

简析Spring中Bean的生命周期

9 月 20 日
阅读 3 分钟
227
在Spring中创建一个Bean,会经历其生命周期,这里有侧重的介绍一下Bean的创建生命周期,总体思路为:UserService.class--->推断构造方法--->普通对象--->依赖注入--->初始化前--->初始化--->初始化后--->Bean对象--->放入单例池Map我们将其拆开,一个步骤一个步骤来看:

抽丝剥茧 - Spring循环依赖与三级缓存

9 月 18 日
阅读 6 分钟
297
循环依赖问题常见三种循环依赖A-->AA-->B 且 B-->AA-->B , B-->C , C-->ASpring中使用了三级缓存来解决循环依赖的问题,我们今天从零出发,一点点揭示三级缓存的面纱。三级缓存通过源码,我们了解到三级缓存分别是第一级缓存 常称为单例池 singletonObjects第二级缓存 earlySngletonObjects第三级缓存...

位运算的妙用

3 月 4 日
阅读 2 分钟
226
在学习算法过程中,第一次接触到了位运算异或及其一些用法,感觉非常妙,写一篇文章来整理一下。异或: {代码...} 下面我们来看一道妙用异或的题:给定一个数组,这个数组中有一个数字出现过奇数次,而其他数字出现过偶数次,找出这个数字。思路:根据异或的结合律,可以将数组中所有数字从头到尾进行异或,偶数次的数字...