JVM類載入前因後果

2021-08-21 18:47:22 字數 925 閱讀 9150

類載入的入口是?或者說從那個類開始載入?

類被載入後,是載入到了**?

載入完成的標記是什麼?什麼時候類才能被正式引用到?

為什麼要採用分層載入的機制?

自定義載入器中怎樣在載入的時候引用到更高階別類載入器已載入的類?

那麼此文將從5個方面來說明類載入的前因後果,解開上述的疑問!

why:為什麼要載入?

類載入的目的在於將class格式的二進位制檔案載入至記憶體,轉換成jvm能識別的資料結構。
what:載入什麼?
符號jvm規範的class格式的二進位制檔案。
who:誰來載入?

when:何時載入?

第一次引用時動態載入。具體包括:new例項化物件、靜態型別變數或方法被引用、反射呼叫。
how:怎樣載入?
載入、驗證、準備、解析、初始化的步驟進行。
類載入的入口是?或者說從那個類開始載入?
待解答!
類被載入後,是載入到了**?
載入到jvm堆記憶體區,包括:常量池、方法區。
載入完成的標記是什麼?什麼時候類才能被正式引用到?
待解答!
為什麼要採用分層載入的機制?
分層載入的機制保證了類的唯一性。例如:根類object類,它必須保證系統中只有乙個object類且必須是jdk自帶的那個,否則將導致程式的錯誤。如果應用程式自己定義了乙個同名(含包路徑)的類。載入的時候由於會逐層往上委託給更高階別的載入器載入(類載入的雙親委託機制),所以最後啟動類載入器識別出它能載入此類。也就是最終讀取的會是jdk自帶的類,應用程式自己定義的同名類將永遠不會被載入到!
自定義載入器中怎樣在載入的時候引用到更高階別類載入器已載入的類?
待解答!

Synchronized的前因後果

當多個執行緒要對同乙個目標進行修改的時候,為了保證資料的一致性,有序性,所以進行加鎖。通過對乙個物件進行加鎖,只有乙個執行緒拿到這個物件,才能執行一段 但是不保證有序性 synchronized關鍵字實際修飾的是乙個object 類,類似於synchronized object o 如果直接修飾sy...

Hadoop0 23 0初探1 前因後果

最近hadoop社群最火熱的事情莫過於hortonworks公布了hadoop最新版本 0.23.0 它標誌著hadoop新時代的到來。本文作為系列文章的第一篇,將結合hadoop 0.20.的特點,以及hadoop核心理念,分析hadoop新版本的特徵。1 hadoop 0.20.的侷限性 1 擴...

華旗起訴海爾商標侵權案的前因後果

偶爾和朋友談起華旗起訴海爾商標侵權案,雖然離這個案件正式起訴時間已經過去接近3個月,還是想在這裡把老杳了解的情況向大家做個介紹,畢竟這起訴訟目前並沒有結案,多了解些其中內情,或許對大家以後有所幫助。事情的起因其實很簡單,2001年剛剛成立一年的海爾積體電路 北京 公司開發完成數碼電視mpegii解碼...