整理類載入的過程
1.載入
在載入階段 虛擬機器完成三件事
1.通過一個類的全限定名來獲取定義此類的二進位制位元組流
2.將這個位元組流所代表的靜態儲存結構轉化為方法區執行時的資料結構
3.在記憶體中生成一個代表這個類的java.lang.Class物件,作為方法區這個類的各種資料訪問出口
2.驗證
直接決定了Java虛擬機器是否能承受惡意程式碼的攻擊,從執行效能角度上講,驗證階段的工作量在虛擬機器的類載入子系統中又佔了一部分
1.檔案格式的驗證
要驗證位元組流是否符合Class檔案格式的規範,並且能被當前版本的虛擬機器處理。
2.後設資料驗證
對位元組碼描述的資訊進行語義分析,保證其描述的資訊符合Java語言規範的要求
3.位元組碼驗證
主要目的是通過資料流和控制流分析,確定語義是合法的、符合邏輯的。
4.符號引用驗證
引用符號可以看做是對類自身以外的資訊匹配教驗。
3.準備
準備階段是正式為類變數分配記憶體並設定類變數初始值(通常情況下是資料型別的零值)的階段,這些變數所使用的記憶體都將在方法區中進行分配。這時候進行記憶體分配的僅包括類變數(被static修飾的變數),而不包括例項變數,例項變數將會在物件例項化的時候隨著物件一起分配在Java堆中。
4.解析
解析階段是虛擬機器將常量池內的符號引用替換為直接引用的過程
1.類或介面的解析
2.欄位解析
3.類方法解析
4.介面方法解析
5.初始化
在準備階段,便用已經賦過一次系統要求的初始值,而在初始化階段,則根據程式設計師通過程式制定的主觀計劃去初始化類變數和其他資源。也就是說 初始化是執行類構造器<clinit>()方法的過程
參考《深入理解Java虛擬機器》
相關文章
- 類載入過程
- java類的載入過程Java
- 類的載入過程概述
- JVM類載入過程JVM
- 虛擬機器類載入機制_類載入的過程虛擬機
- 三-類的載入過程詳解
- 類檔案的結構、JVM 的類載入過程、類載入機制、類載入器、雙親委派模型JVM模型
- JVM(六):探究類載入過程-下JVM
- 面試題總結: 類的載入過程面試題
- 【JVM進階之路】十三:類載入過程JVM
- JVM之類載入器、載入過程及雙親委派機制JVM
- html載入過程HTML
- runtime載入過程
- 深入理解JVM(③)虛擬機器的類載入過程JVM虛擬機
- springboot引導上下文載入過程和配置載入過程Spring Boot
- JAVA-大白話探索JVM-類載入過程(二)JavaJVM
- 從SpringBoot原始碼分析 主程式配置類載入過程Spring Boot原始碼
- 【Android面試-Java-V04】Java類載入過程Android面試Java
- JVM核心之JVM執行和類載入全過程JVM
- Dubbo原始碼解析之SPI(一):擴充套件類的載入過程原始碼套件
- Android HAL模組的載入過程Android
- 頁面載入全過程
- 好程式設計師Java培訓分享Java類載入的過程概述程式設計師Java
- SwipeRecyclerView 的下拉重新整理和載入更多的實現,simple版,有引入包的過程View
- 好程式設計師java分享Java面試寶典:類的載入過程程式設計師Java面試
- 【搞定Jvm面試】 面試官:談談 JVM 類載入過程是怎樣的?JVM面試
- java類的建立過程Java
- JS 頁面載入過程問題JS
- 瀏覽器頁面載入過程瀏覽器
- Android fragment 標籤載入過程分析AndroidFragment
- HTTPS會話過程整理HTTP會話
- mysql儲存過程整理MySql儲存過程
- 類與類的載入
- 如果你還不瞭解Java類的載入過程,來看看這一篇吧Java
- 從輸入 URL 到頁面載入全過程
- Spring原始碼剖析3:Spring IOC容器的載入過程Spring原始碼
- JVM基本結構、類載入過程以及執行時記憶體溢位分析JVM記憶體溢位
- 超詳細講解頁面載入過程