Java面試題之Java類載入機制詳解!
Java類載入機制詳解【java面試題】
(1)問題分析:
Class檔案由類裝載器裝載後,在JVM中將形成一份描述Class結構的元資訊物件,透過該元資訊物件可以獲知Class的結構資訊:如建構函式,屬性和方法等,Java允許使用者藉由這個Class相關的元資訊物件間接呼叫Class物件的功能。
虛擬機器把描述類的資料從class檔案載入到記憶體,並對資料進行校驗,轉換解析和初始化,最終形成可以被虛擬機器直接使用的Java型別,這就是虛擬機器的類載入機制。
(2)核心答案講解:
類裝載器就是尋找類的位元組碼檔案,並構造出類在JVM內部表示的物件元件。在Java中,類裝載器把一個類裝入JVM中,要經過以下步驟:
1)裝載:查詢和匯入Class檔案;
2)連結:把類的二進位制資料合併到JRE中;
A)校驗:檢查載入Class檔案資料的正確性;
B)準備:給類的靜態變數分配儲存空間;
C)解析:將符號引用轉成直接引用;
3)初始化:對類的靜態變數,靜態程式碼塊執行初始化操作
Java程式可以動態擴充套件是由執行期動態載入和動態連結實現的;比如:如果編寫一個使用介面的應用程式,可以等到執行時再指定其實際的實現(多型),解析過程有時候還可以在初始化之後執行;比如:動態繫結(多型)。
(3)問題擴充套件
由於Java的跨平臺性,經過編譯的Java源程式並不是一個可執行程式,而是一個或多個類檔案。當Java程式需要使用某個類時,JVM會確保這個類已經被載入、連線(驗證、準備和解析)和初始化。類的載入是指把類的.class檔案中的資料讀入到記憶體中,通常是建立一個位元組陣列讀入.class檔案,然後產生與所載入類對應的Class物件。載入完成後,Class物件還不完整,所以此時的類還不可用。當類被載入後就進入連線階段,這一階段包括驗證、準備(為靜態變數分配記憶體並設定預設的初始值)和解析(將符號引用替換為直接引用)三個步驟。最後JVM對類進行初始化,包括:
1)如果類存在直接的父類並且這個類還沒有被初始化,那麼就先初始化父類;
2)如果類中存在初始化語句,就依次執行這些初始化語句。
類的載入是由類載入器完成的,類載入器包括:根載入器(BootStrap)、擴充套件載入器(Extension)、系統載入器(System)和使用者自定義類載入器(java.lang.ClassLoader的子類)。
想要了解 更多關於Java面試題的相關內容,歡迎關注小千,後期分享更多Java知識。
本文來自千鋒教育,轉載請註明出處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2781615/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java類載入機制詳解【java面試題】Java面試題
- 【Java面試題】之類載入:從面試題分析Java類載入機制Java面試題
- Java 類載入機制詳解Java
- JVM面試問題系列:Java類載入機制之雙親委派模型JVM面試Java模型
- 阿里面試題,深入理解Java類載入機制阿里面試題Java
- 兩道面試題帶你解析 Java 類載入機制面試題Java
- Java 技術之類載入機制Java
- java類載入機制Java
- Java 虛擬機器之四:Java類載入機制Java虛擬機
- Java類載入機制(全套)Java
- Java面試題之包裝類快取機制Java面試題快取
- Java安全基礎之Java反射機制和ClassLoader類載入機制Java反射
- 【Java面試題】之Object類中方法詳解Java面試題Object
- Java 類載入器以及載入機制Java
- Java基礎篇—Java類載入機制Java
- 談談 Java 類載入機制Java
- Java類載入機制總結Java
- Java類載入器詳解Java
- Java虛擬機器9:Java類載入機制Java虛擬機
- 好程式設計師Java學習路線分享Java面試題之載入機制程式設計師Java面試題
- java虛擬機器類載入機制Java虛擬機
- Java 虛擬機器類載入機制Java虛擬機
- Java類載入機制-雙親委派Java
- Java基礎-類載入器以及載入機制Java
- Java虛擬機器(六):類載入機制Java虛擬機
- Java虛擬機器 —— 類的載入機制Java虛擬機
- Java類載入機制與Tomcat類載入器架構JavaTomcat架構
- java類載入及雙親委派機制Java
- jvm系列(一):java類的載入機制JVMJava
- Java高階篇——深入淺出Java類載入機制Java
- 關於Java類載入雙親委派機制的思考(附一道面試題)Java面試題
- 面試官,不要再問我“Java虛擬機器類載入機制”了面試Java虛擬機
- JVM(三)-java虛擬機器類載入機制JVMJava虛擬機
- JVM系列(四) – JVM類載入機制詳解JVM
- JVM系列(四) - JVM類載入機制詳解JVM
- 由一道面試題理解類載入機制面試題
- 一道面試題搞懂JVM類載入機制面試題JVM
- 一文學會 Java 類載入機制Java