這篇文章帶給大家的內容是關於Java類別載入過程的詳細介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
Java檔案從編碼到完成最終執行的過程:
JVM虛擬機把.class檔案中類別資訊載入進內存,並進行解析產生對應的class物件的過程。 JVM不是一開始就把所有的類別都加載進記憶體中,而是只有第一次遇到某個需要運行的類別時才會加載,並且只加載一次。
把class字節碼檔案從各個來源透過類別載入器載入到記憶體中
JVM要完成三件事
類別載入器
將java類別的二進位程式碼合併到JVM的運行狀態之中的程序
保證載入的位元組流符合虛擬機器規範,不會造成安全錯誤
驗證分類
為類別變數(注意,不是實例變數)分配內存,並且賦予初步值(Java虛擬機器根據不同變數類型的預設初始值)
預設初始值
#常數池內的符號引用替換為直接引用的過程
#符號引用:一個字串,但是這個字串給了一些能夠唯一性識別一個方法,一個變量,一個類別的相關資訊
直接引用:可以理解為一個記憶體位址,或者一個偏移量
舉個例子來說,現在呼叫方法hello(),這個方法的位址是1234567,那麼hello就是符號引用,1234567就是直接引用
#解析階段,虛擬機會把所有的類別名,方法名,字段名這些符號引用替換為具體的記憶體位址或偏移量,也就是直接引用
對類別變數(static修飾的變數或語句)初始化,是執行類別建構器的過程
初始化過程
以上是Java類別載入過程的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!