JVM的簡單運行流程:主要將字節碼文件加載到JVM的內存中,負責跨平臺解釋字節碼文件到不一樣的操做系統。java
JVM的基本結構:c++
類加載器、執行引擎、運行時數據區域、本地接口jvm
類的裝載spa
加載、鏈接(驗證、準備、解析)、初始化、使用、卸載操作系統
class 保存類的定義和結構 保存在堆中對象
初始化:執行類的構造器(clinit),爲類的靜態變量賦予正確的初始值。blog
構造器:接口
1.static的變量內存
2.static{語句}it
構造方法:實例化對象
類加載器雙親委派模型
爲何要使用?
避免重複加載。
Jdk已有加載器
Bootstrap ClassLoader jvm的啓動加載器 c++編寫的內核中看不到 啓動類加載器 是下面的父類 主要加載 rt.jar 它的父類爲null
Extension ClassLoader extend classLoder java編寫的 擴展類加載器 是下面的父類 %JAVA_HOME/lib/ext/*.jar%
App ClassLoader extend classLoder java編寫的 系統類加載器 ClassPATH
自定義加載器 extend classLoder 自定義路徑