本來打算堅持每天一更的。中間有一天斷了,這一斷就是 2 周。 真的是可怕!!! 謹記,謹記。。。
什么是虛擬機的類加載機制?
虛擬機把描述class信息的文件加載到內存,效驗,轉化解析,初始化,將形成可以被虛擬機解析的java 類型。
動態加載和動態連接
指的是,java虛擬加相對與編譯時需要連接的語言來說,java的烈性加載,連接,和初始化過程都是程序運行期間完成的。
類加載機制。
加載 ==》? ? 連接 (驗證 準備 解析)==》 初始化 ==》調用==》 卸載。
其中? 解析的過程不一定是在 按順序進行的。
主動引用。
【1】當字節碼 遇到new getstatic putstatic invokestatic。
【2】 反射reflect的時候
【3】 初始化一個類,父類還沒有初始化。
【4】虛擬機啟動時,啟動的那個主類。比如main。
被動引用。
【1】子類去調用父類的的靜態字段,不會觸發初始化。
【2】使用數組不會觸發初始化。
什么是加載。
虛擬機做3件事。
【1】 通過類的全限定名 來獲取一個二進制流。
【2】將流的靜態存儲結構轉換成方法區的運行時數據結構。
【3】 在內存中生成一個 代表這個類的 class對象。作為方法區這個類的個個數據的入口。
強調 一下。 數組 不會觸發加載,直接在虛擬機上創建。