java虛擬機是通過可達性分析算法來判定對象是否存活。
當一個對象到GC Roots沒有任何引用鏈相連,或者說從GC Roots到這個對象不可達時,這個對象將會被判定爲是可回收的對象。
在Java語言中,可作爲GC Roots的對象包括下面幾種:
- 虛擬機棧(棧幀中的本地變量表)中引用的對象
- 方法區中類靜態屬性引用的對象
- 方法區中常量引用的對象
- 本地方法棧中JNI(即一般說的Native方法)引用的對象
java虛擬機是通過可達性分析算法來判定對象是否存活。
當一個對象到GC Roots沒有任何引用鏈相連,或者說從GC Roots到這個對象不可達時,這個對象將會被判定爲是可回收的對象。
在Java語言中,可作爲GC Roots的對象包括下面幾種: