技术博文
文章平均质量分 78
hh55551
这个作者很懒,什么都没留下…
展开
-
ThreadLocal源码分析
为什么ThreadLocal能在自己的线程中保持独立的副本呢,其实在Thread类中有这么一个属性,看下图: 里面维护了一个threadlocals的属性,这个是一个本质其实就是一个entry数组 看上图可知,Entry是一个弱引用,易在GC的时候被回收,其中这个map中key就是我们的threadlocal对象,value就为我们需要保存的副本变量。 首先ThreadLocal中上面的截图,是关联计算再数组中下标的位置。这里采用的是斐波那契数,使得hash均匀的分配。在这里采用concurrent包原创 2020-05-20 16:59:46 · 233 阅读 · 0 评论 -
ArrayList创建优化分析
说到ArrayList大家都知道底层是一个数组,在创建对象得时候通常会直接这样 我们可以运行此代码,然后通过jstat命令看一下,jvm得GC情况: 明显可以看出在休眠25后jvm中得E区占有量从原来得1311.1一下子飙升到10606.2已经接近快把E区占满得状态,下来就会触发ygc。 我们在看给集合定义初始大小得结果: 还是通过jstat来查看jvm情况 在线程休眠过...原创 2020-01-06 16:32:39 · 366 阅读 · 0 评论 -
关于HashSet的源码分析
关于HashSet的源码分析HashSet的分析 HashSet的分析 我们可以知道在Collection接口中List和Set都是其子接口,而List和Set最大的区别在于一个有序一个无序,一个里面的值可以重复,一个不可以重复,为什么会出现这种原因呢,我们可以剖析一下HashSet的源码。 我们看到下面的源码 我们可以看到在add方法中调用一个HashMap的put方法,key为你用...原创 2019-01-29 10:12:14 · 144 阅读 · 0 评论