- 博客(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
334
原创 CPU缓存与Java内存模型
CPU多级缓存 局部性原理: 1)时间局部性:如果某个数据被访问,那么在不久的将来它很可能再次被访问; 2)空间局部性:如果某个数据被访问,那么它相邻的数据很快也可能被访问。 缓存一致性(MESI) 定义了四种cache life的四种状态: 状态 描述 M(Modified) 这行数据有效,数据被修改了,和内存中的数据不一致,数据只存在于本Cache中。 E(Exclus...
2018-09-19 20:45:47
4493
原创 线程安全
定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都表现出正确的行为,那么就称这个类是线程安全的。 原子性 提供了互斥访问,同一时刻只能有一个线程来对它进行操作。 JDK中Atomic包来完成原子性; 锁:synchronized(依赖JVM),Lock(依赖特殊CPU指令,代码实现,Reentra...
2018-09-14 16:46:46
209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人