GC:Gabage Collection
1. JVM自动垃圾回收机制
好处:程序员不需要主动回收垃圾
c/C++主动垃圾回收
2. JVM内存划分
1) 栈:局部
变量,方法调用
2) 堆:对象
3) 常量池:常量(String, int)
4) 方法区:.class文件
5) 本地方法栈:.so文件
垃圾释放由c/C++决定
6) 线程pc寄存器
2. 垃圾识别算法
堆中的对象有些是垃圾对象
垃圾对象:引用计数为0
1) 引用计数法
思路:假设所有对象都有用,找垃圾对象
缺点:无法识别互相引用的对象
2) root搜索算法
思路:假设所有对象都是垃圾,找有用对象
3. 垃圾回收算法(从流程角度)
1) 标记->清除
2) 标记->清除->压缩
3) 标记->清除->复制
4. 垃圾回收算法( 从线程角度 )
1) 串行
特点:单线程进行垃圾回收,垃圾回收过程中暂停应用线程
缺点:卡顿
2) 并行
特点:多线程进行垃圾回收,垃圾回收过程中暂停应用线程
缺点:卡顿
3) 并发
特点:应用程序和垃圾回收线程同时执行程
1) 按代垃圾回收算法
静态图:young区 old区 permeanet区
动态图