自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 资源 (1)
  • 问答 (4)
  • 收藏
  • 关注

原创 ThreadLocal源码分析

为什么ThreadLocal能在自己的线程中保持独立的副本呢,其实在Thread类中有这么一个属性,看下图:里面维护了一个threadlocals的属性,这个是一个本质其实就是一个entry数组看上图可知,Entry是一个弱引用,易在GC的时候被回收,其中这个map中key就是我们的threadlocal对象,value就为我们需要保存的副本变量。首先ThreadLocal中上面的截图,是关联计算再数组中下标的位置。这里采用的是斐波那契数,使得hash均匀的分配。在这里采用concurrent包

2020-05-20 16:59:46 233

原创 ArrayList创建优化分析

说到ArrayList大家都知道底层是一个数组,在创建对象得时候通常会直接这样我们可以运行此代码,然后通过jstat命令看一下,jvm得GC情况:明显可以看出在休眠25后jvm中得E区占有量从原来得1311.1一下子飙升到10606.2已经接近快把E区占满得状态,下来就会触发ygc。我们在看给集合定义初始大小得结果:还是通过jstat来查看jvm情况在线程休眠过...

2020-01-06 16:32:39 367

原创 关于HashSet的源码分析

关于HashSet的源码分析HashSet的分析HashSet的分析 我们可以知道在Collection接口中List和Set都是其子接口,而List和Set最大的区别在于一个有序一个无序,一个里面的值可以重复,一个不可以重复,为什么会出现这种原因呢,我们可以剖析一下HashSet的源码。我们看到下面的源码我们可以看到在add方法中调用一个HashMap的put方法,key为你用...

2019-01-29 10:12:14 145

ThreadLocal整理.docx

解析源码内容,包括threadlocalmap中怎么解决hash冲突,以及set时得各种场景,还有set时什么条件会触发扩容机制,并且说明在过期桶中为什么要清除这些数据信息。

2020-05-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除