JVM永久代
複習備用,感謝開源
永久代
永久代是用於存放靜態檔案,如Java類、方法等。
持久代對垃圾回收沒有顯著影響,但是有些應用可能動態生成或者呼叫一些class,
例如Hibernate 等,在這種時候需要設定一個比較大的持久代空間來存放這些執行過程中新增的類
永久代中一般包含:
-1 類的方法(位元組碼...)
-2 類名(Sring物件)
-3 .class檔案讀到的常量資訊
-4 class物件相關的物件列表和型別列表 (e.g., 方法物件的array).
-5 JVM建立的內部物件
-6 JIT編譯器優化用的資訊
永久代與方法區
永久帶是方法區的一種實現,其中儲存類别範本資訊,常量以及靜態變數。
永久代的回收機制
hotspot的方法區存放在永久代中,因此方法區被人們稱為永久代。永久代的垃圾回收主要包括型別的解除安裝和廢棄常量池的回收。當沒有物件引用一個常量的時候,該常量即可以被回收。而型別的解除安裝更加複雜。必須滿足一下三點,該型別的所有例項都被回收了,該型別的ClassLoader被回收了,該型別對應的java.lang.Class沒有在任何地方被引用,在任何地方都無法通過反射來例項化一個物件
相關文章
- JVM - 方法區(永久代)的垃圾回收JVM
- 【深入理解JVM】方法區 永久代 元空間JVM
- JVM垃圾回收——新生代,老年代,永久代,Minor GC,Full GCJVMGC
- 深入理解JVM虛擬機器1:JVM記憶體的結構與消失的永久代JVM虛擬機記憶體
- 關於jvm的永久代會發生垃圾垃圾回收嗎?進來便知JVM
- Java永久代去哪兒了Java
- 常用的jvm配置引數 :永久區引數配置JVM
- (七)永久代(方法區)的垃圾回收
- Java面試題虛擬機器為什麼使用元空間替換了永久代(JVM篇)Java面試題虛擬機JVM
- 永久代和元空間的變化
- 為什麼用元空間替代永久代?
- 輕鬆理解JVM的分代模型JVM模型
- JDK8-廢棄永久代(PermGen)迎來元空間(Metaspace)JDK
- jvm的新生代和老年代簡介JVM
- 深入理解JVM——(三)為什麼JVM新生代需要兩個Survivor區JVM
- 初步探索GraalVM--雲原生時代JVM黑科技LVMJVM
- 永久化alias命令
- SELinux如何永久禁用Linux
- JVM(六)為什麼新生代有兩個Survivor分割槽?JVM
- 一文吃透JVM分代回收機制(以SerialGC為例)JVMGC
- dbms_service 永久有效
- Linux修改IP永久生效Linux
- Ubuntu 永久修改 ulimit -nUbuntuMIT
- 從原理聊JVM(三):詳解現代垃圾回收器Shenandoah和ZGCJVMNaNGC
- JVM(一)-JVM入門JVM
- AUTOCAD——永久關閉柵格
- 永久修改VS include目錄
- JVMJVM
- [效能][JVM]jvm垃圾回收機制JVM
- JVM系列(六) – JVM垃圾回收器JVM
- JVM系列(一) - JVM總體概述JVM
- JVM系列(三) - JVM物件探祕JVM物件
- JVM系列(六) - JVM垃圾回收器JVM
- 永久免費內網穿透工具內網穿透
- 物聯網路卡能否永久使用
- 永久有效的 webstorm license server 20180808WebORMServer
- win10永久啟用命令Win10
- [譯]深入理解JVM Understanding JVM InternalsJVM