JVM - 方法區(永久代)的垃圾回收
方法區在HotSpot中也被成為永久代,該部分垃圾收集的效率比較低。
永久代主要針對廢棄常量和無用的類兩部分內容進行回收。
廢棄常量的回收:以常量池中字面量的回收為例,在當前系統中沒有任何地方引用某個字面量時,那麼如果此時發生垃圾回收,而且必要的話,該字面常量將會被回收掉。常量池中的其他類(介面),方法,欄位的符號引用的回收與此類似。
無用的類:同時滿足下面三個條件的類,才可以被回收,但是僅僅是可以,並非不使用了必然會回收,受虛擬機器引數控制。
1. 該類所有的例項都已經被回收,也就是Java堆中不存在該類的任何例項。
2. 載入類的ClassLoader已經被回收。
3. 該類對應的java.lang.Class物件沒有在任何地方被引用,無法在任何地方通過發射訪問該類的方法。
在大量使用反射、動態代CGLib等ByteCode框架、動態生成JSP以及OSGI這類頻繁自定義ClassLoader的場景都需要虛擬機器具備類解除安裝的功能,以保證永久代不會溢位。
相關文章
- JVM垃圾回收——新生代,老年代,永久代,Minor GC,Full GCJVMGC
- 關於jvm的永久代會發生垃圾垃圾回收嗎?進來便知JVM
- JVM記憶體管理、JVM垃圾回收機制、新生代、老年代以及永久代JVM記憶體
- 對JVM中垃圾回收機制的個人理解--新生代,老年代,永久代JVM
- jvm垃圾分代回收演算法JVM演算法
- jvm的永久代JVM
- 【深入理解JVM】方法區 永久代 元空間JVM
- JVM垃圾回收JVM
- jvm - 垃圾回收JVM
- [JVM]垃圾回收JVM
- JVM永久代JVM
- JVM 記憶體分代、垃圾回收漫談JVM記憶體
- JVM 中的垃圾回收JVM
- JVM 中的永久代JVM
- JVM垃圾回收概述JVM
- JVM垃圾回收(下)JVM
- JVM - 垃圾回收概述JVM
- JVM垃圾回收器JVM
- jvm的垃圾回收機制JVM
- 關於JVM的垃圾回收JVM
- JVM 垃圾回收演算法和垃圾回收器JVM演算法
- [效能][JVM]jvm垃圾回收機制JVM
- JVM系列(六) – JVM垃圾回收器JVM
- JVM系列(六) - JVM垃圾回收器JVM
- 【JVM】JVM系列之垃圾回收(二)JVM
- JVM垃圾回收歷險JVM
- JVM 垃圾回收機制JVM
- 淺談JVM垃圾回收JVM
- JVM-垃圾回收篇JVM
- JVM垃圾回收機制JVM
- JVM垃圾回收詳解JVM
- jvm 自動垃圾回收JVM
- JVM調優總結-分代垃圾回收詳述1JVM
- JVM調優總結-分代垃圾回收詳述2JVM
- 更快的JVM垃圾回收器:ShenandoahJVMNaN
- JVM調優總結(五)-分代垃圾回收詳述1JVM
- JVM調優總結(六)-分代垃圾回收詳述2JVM
- 帶你掌握JVM垃圾回收JVM