java虛擬機如何知道哪些對象需要被回收

java虛擬機是通過可達性分析算法來判定對象是否存活。

當一個對象到GC Roots沒有任何引用鏈相連,或者說從GC Roots到這個對象不可達時,這個對象將會被判定爲是可回收的對象。

在Java語言中,可作爲GC Roots的對象包括下面幾種:

  1. 虛擬機棧(棧幀中的本地變量表)中引用的對象
  2. 方法區中類靜態屬性引用的對象
  3. 方法區中常量引用的對象
  4. 本地方法棧中JNI(即一般說的Native方法)引用的對象
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章