什么樣的對象能當根節點 GC roots?


Java通過可達性分析來判斷對象是否存活。
基本思想是通過一系列稱為“GC roots”的對象作為起始點,可以作為根節點的是:

1、虛擬機棧(棧幀中的本地變量表)中引用的對象
2、本地方法棧中JNI(即一般說的Native方法)引用的對象
3、方法區中類靜態屬性引用的對象
4、方法區中常量引用的對象

作為GC Roots的節點主要在全局性的引用(例如常量或類靜態屬性)與執行上下文(例如棧幀中的本地變量)中。
虛擬機、本地方法棧這都是局部變量,某個方法執行完,某些局部使用的對象可以被回收。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM