- 博客(4)
- 收藏
- 关注
原创 从源码分析HashMap在JDK8与JDK7的变化
简述在之前的文章中有详细描述过基于JDK7中HashMap与HashTable的差异,而在JDK8出现后,HasMap在实现上有了很大的变化。有所耳闻的就是里面出现了红黑树结构,而且效率更高了。接下来就通过JDK8种HasMap的源码实现来分析其中的变化。HashMap内部类变化JDK7中hashMap用来存储真正的Key-Value键值对只有一个Entry的内部类:static clas...
2018-10-08 19:51:57 302
原创 CPU缓存与Java内存模型
CPU多级缓存局部性原理:1)时间局部性:如果某个数据被访问,那么在不久的将来它很可能再次被访问;2)空间局部性:如果某个数据被访问,那么它相邻的数据很快也可能被访问。缓存一致性(MESI)定义了四种cache life的四种状态:状态描述M(Modified)这行数据有效,数据被修改了,和内存中的数据不一致,数据只存在于本Cache中。E(Exclus...
2018-09-19 20:45:47 4421
原创 线程安全
定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都表现出正确的行为,那么就称这个类是线程安全的。原子性提供了互斥访问,同一时刻只能有一个线程来对它进行操作。 JDK中Atomic包来完成原子性; 锁:synchronized(依赖JVM),Lock(依赖特殊CPU指令,代码实现,Reentra...
2018-09-14 16:46:46 179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人