JVM組成以類載入方式(雙親委派機制)、jvm垃圾回收
JVM組成
- 本地庫介面、執行引擎、執行時資料區、類載入子系統
執行時資料區:
- 堆(所有執行緒共享),元空間(所有執行緒共享),虛擬機器棧(執行緒隔離)、本地方法棧(執行緒隔離)、程式計數器(執行緒隔離)
堆區: - 新生代(eden,s0,s1)、老生
雙親委派:
我們的程式本來是要通過應用類載入器來載入,但是它不會優先載入,它會先委託給他的父親(擴充套件類載入器),它的父親再委託給啟動類載入器,也就是委託給它的兩個親人。所謂就叫雙親委派。有載入規則,優先使用爺爺載入,如果沒有載入到再使用它爹載入,如果他爹也沒有載入到,才到自己載入,如果自己也沒有載入到才報ClassNotFountException。再這過程中只要上一級載入到了,下一級就不會載入了。
目的:不讓我們輕易覆蓋系統提供功能
也要讓我們擴充套件我們功能。
jvm垃圾回收
首先判斷物件是否已死; 是否為垃圾
使用:
- 引用計數演算法
- 可達性分析演算法:看物件與垃圾收集的起點GC Roots之間沒有可達路徑,沒有就是已經死了。就可以進行回收。
選擇垃圾收集演算法:進行垃圾回收
常見的幾種回收演算法: - 標記-清除演算法:分為標記和清除兩個階段,首先標記出所有需要回收的物件,標記完成後統一回收所有被標記的物件
- 複製演算法:把記憶體分為大小相等的兩塊,每次儲存只用其中一塊,當這一塊用完了,就把存活的物件全部複製到另一塊上,同時把使用過的這塊記憶體空間全部清理掉,往復迴圈
- 缺點:實際可使用的記憶體空間縮小為原來的一半,比較適合
- 標記-整理演算法:先對可用的物件進行標記,然後所有被標記的物件向一段移動,最後清除可用物件邊界以外的記憶體
- 分代收集演算法:把堆記憶體分為新生代和老年代,新生代又分為Eden區、From Survivor和To Survivor。一般新生代中的物件基本上都是朝生夕滅的,每次只有少量物件存活,
- 新生代因此採用複製演算法,只需要複製那些少量存活的物件就可以完成垃圾收集;
- 老年代中的物件存活率較高,就採用標記-清除或者標記整理演算法來進行回收。
相關文章
- JVM 類載入機制及雙親委派模型JVM模型
- JVM類載入與雙親委派機制被打破JVM
- jvm 雙親委派機制JVM
- 深入探究JVM之類載入與雙親委派機制JVM
- JVM類載入機制及雙親委派機制原始碼解讀JVM原始碼
- 【JVM】類載入器與雙親委派JVM
- JVM之類載入器、載入過程及雙親委派機制JVM
- JVM面試問題系列:Java類載入機制之雙親委派模型JVM面試Java模型
- Java類載入機制-雙親委派Java
- [JVM]雙親委派JVM
- java類載入及雙親委派機制Java
- .類載入器及雙親委派機制
- JVM垃圾回收機制入門JVM
- 類檔案的結構、JVM 的類載入過程、類載入機制、類載入器、雙親委派模型JVM模型
- [效能][JVM]jvm垃圾回收機制JVM
- 【JVM第2課】類載入子系統(類載入器、雙親委派)JVM
- JVM 垃圾回收機制JVM
- JVM垃圾回收機制JVM
- 面試準備之JVM的組成、垃圾回收機制面試JVM
- 深入理解JVM(③)虛擬機器的類載入器(雙親委派模型)JVM虛擬機模型
- jvm的垃圾回收機制JVM
- java JVM垃圾回收機制JavaJVM
- jvm垃圾回收機制 一JVM
- jvm垃圾回收機制 二JVM
- JVM探究(一)談談雙親委派機制和沙箱安全機制JVM
- JVM垃圾回收機制(Garbage Collection)JVM
- 談談 JVM 垃圾回收機制JVM
- 理解JVM(四):JVM類載入機制JVM
- JVM:類載入機制JVM
- JVM類載入機制JVM
- JVM 類載入機制JVM
- JVM必備基礎知識(二)-- 類載入器和雙親委派模型JVM模型
- jvm位元組碼和類載入機制JVM
- 【轉】深入理解JVM--JVM垃圾回收機制JVM
- 秒懂JVM的垃圾回收機制JVM
- 聊聊JVM的垃圾回收機制GCJVMGC
- 【JVM】JVM系列之類載入機制(四)JVM
- JVM-類載入機制JVM