JVM篇
JVM
组成
堆
虚拟机栈
方法区
直接内存
类加载器
双亲委派模型
加载过程
加载
验证
准备
解析
初始化
垃圾回收
回收时机
引用计数法
可达性分析算法
垃圾回收算法
标记清除算法
数组需要连续的空间,这种情况可能会导致数组无法创建。
标记整理算法
复制算法
分代回收算法
垃圾回收器
串行垃圾回收器
并行垃圾回收器
CMS(并发)垃圾回收器
初始标记: 标记GC Root直接引用的对象
并发标记: 标记GC Root间接引用的所有对象
重新标记: 防止在并发标记阶段GC Root的引用链发生变化
G1垃圾回收器
引用
引用队列释放占用的外部资源
虚引用存在的意义就是监控对象是否存活
通过引用队列,程序可以获取到被gc的对象,进而手动的释放外部资源