程序计数器、虚拟机栈、本地方法栈,跟随线程销毁
垃圾回收针对堆、方法区,JDK8之后永久代被取消,主要针对堆
通过可达性分析算法,判断对象是否存活
从根对象GC roots出发向下枚举,和枚举对象没有任何关联的对象,判定为不可达对象
1、虚拟机栈中引用的对象,栈帧中的本地变量表
2、方法区中静态属性引用的对象
3、方法区中常量引用的对象
4、本地方法栈中引用的对象
新生代,Minor GC
老年代,Major GC,每次回收后存活的少量对象,晋升老年代
对象年龄,熬过垃圾回收的次数
1、标记-清除算法
2、标记-复制算法
3、标记-整理算法
新生代按8:1:1分为1个Eden、2个Survivor
优先选择Eden和其中一个Survivor,当这2个区域要满时,则进行新生代垃圾回收,
将存活的对象复制到另一个Survivor中,对象年龄满16,复制到老年代,-XX:MaxTenuringThreshold
大对象直接分配到老年代,如长字符串、大数组,-XX:PretenureSizeThreshold
Copyright ©2010-2022 比特日记 All Rights Reserved.