- 博客(5)
- 资源 (9)
- 收藏
- 关注
原创 JVM学习总结——五、JVM内存常见回收算法
那些内存需要回收?Java堆和方法区(废弃常量,无用的类)什么时候回收?用可达算法判断两次标记后如何回收?需要根据jvm垃圾收集器算法回收。jvm垃圾收集器以及使用的回收算法回收算法1.标记-清除算法(Mark-Sweep) 标记-清除算法是最基础收集算法。(适合回收老年代)。 不足之处:1.效率低因为需要先标记再清除。 2
2018-01-23 14:19:04 240 1
原创 JVM学习总结——四、JVM内存结构
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;-XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。-server选项下默认MaxPermSize为64m,-client选项下默认MaxPermSize为32mJVM在client模式默认-Xms是1M,-Xmx是64MJVM在Server模式默认-Xms是128
2018-01-23 11:41:18 3020 1
原创 HashTable工作原理
HashTable继承自Dictionary类,而HashMap继承自AbstractMap类。但二者都实现了Map接口。 HashTable 中的方法是Synchronize的。Hashtable中,key和value都不允许出现null值。但是如果在Hashtable中有类似put(null,null)的操作,编译同样可以通过,因为key和value都是Object类
2018-01-21 21:50:25 684
原创 ConcurrentHashMap工作原理
JDK1.8以下ConcurrentHashMap采用了分段锁的设计,只有在同一个分段内才存在竞态关系,不同的分段锁之间没有锁竞争。相比于对整个Map加锁的设计,分段锁大大的提高了高并发环境下的处理能力。ConcurrentHashMap中的分段锁称为Segment同时又是一个ReentrantLock(Segment继承了ReentrantLock)。
2018-01-21 21:45:09 1001
原创 HashMap工作原理
HashMapJDK1.7结构:数组+链表数组默认数组长度:16负载因子:0.75数组位置:通过key的hashcode hashcode计算得到hash值 hash & (length-1) 如数组长度为 32 的时候,其实取的就是 key 的 hash 值的低 5 位(32=2的5次方),作为它在数组中的下标位置hashcode计算方法: 哈希计算公式可以计为s [...
2018-01-21 21:40:04 195
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人