什么样的对象能当根节点 GC roots?


Java通过可达性分析来判断对象是否存活。
基本思想是通过一系列称为“GC roots”的对象作为起始点,可以作为根节点的是:

1、虚拟机栈(栈帧中的本地变量表)中引用的对象
2、本地方法栈中JNI(即一般说的Native方法)引用的对象
3、方法区中类静态属性引用的对象
4、方法区中常量引用的对象

作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧中的本地变量)中。
虚拟机、本地方法栈这都是局部变量,某个方法执行完,某些局部使用的对象可以被回收。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM