java--GC Root有哪些

來源:互聯網
上載者:User

標籤:loader   地方法   java   stack   類型   儲存   oba   cto   記憶體回收   

GC管理的主要區域是Java堆,一般情況下只針對堆進行記憶體回收。方法區、棧和本地方法區不被GC所管理,因而選擇這些地區內的對象作為GC roots,被GC roots引用的對象不被GC回收。

詳細:

 

GC Root

常說的GC(Garbage Collector) roots,特指的是垃圾收集器(Garbage Collector)的對象,GC會收集那些不是GC roots且沒有被GC roots引用的對象。

一個對象可以屬於多個root,GC root有幾下種:

  • Class - 由系統類別載入器(system class loader)載入的對象,這些類是不能夠被回收的,他們可以以靜態欄位的方式儲存持有其它對象。我們需要注意的一點就是,通過使用者自訂的類載入器載入的類,除非相應的java.lang.Class執行個體以其它的某種(或多種)方式成為roots,否則它們並不是roots,.
  • Thread - 活著的線程
  • Stack Local - Java方法的local變數或參數
  • JNI Local - JNI方法的local變數或參數
  • JNI Global - 全域JNI引用
  • Monitor Used - 用於同步的監控對象
  • Held by JVM - 用於JVM特殊目的由GC保留的對象,但實際上這個與JVM的實現是有關的。可能已知的一些類型是:系統類別載入器、一些JVM知道的重要的異常類、一些用於處理異常的預指派至以及一些自訂的類載入器等。然而,JVM並沒有為這些對象提供其它的資訊,因此需要去確定哪些是屬於"JVM持有"的了。

 

 

 

java--GC Root有哪些

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.