類裝載器

一、java虛擬機使用每個類的第一件事就是將該類的字節碼裝載進來,轉載字節碼的功能是由類裝載器完成的,類裝載器負責根據一個類的名稱爲定位和生成類的字節碼數據後返回給java虛擬機
   最多見的裝載器,是將.class中的內容,轉換成java虛擬器的編碼java

二、類裝載器自己也是一個java類,java虛擬機也容許開發人員編寫本身的類裝載器,以便經過其餘各類特殊方式來產生類字節碼編碼

三、無論類裝載器採用什麼方式,只要可以在內存中製造出給java虛擬機調用的類字節碼便可,因此,把類裝載器描述爲類字節碼的製造器更容易讓人理解線程

四、當一個類被加載後,java虛擬機將其編譯爲可執行代碼存儲在內存中,並將索引信息存儲進一個HashTable中,其索引關鍵字爲與之相對應的類名對象

五、java程序中的類自己也是一種事物,它也能夠用一個java類描述,這個特殊的類名就叫class。類裝載器裝載某個類的字節碼的過程,實際上就是在建立class類的一個實力對象,這class類的實例對象封裝的內容正好是當前加載類的字節碼數據索引

 類名.class System.class
 對象的.getClass()  New Date().getClass()
 Class.foName("類名")內存

java虛擬機中內嵌了一個稱爲Bootstrap的類裝載器,它屬於java虛擬機的內核,不用類裝載器裝載。bootStrap類裝載器負責加載java核心包中的類(即rt.jar文件中的類),是全部類加載器的頂點,這些類的class.getClassLoader方法返回值爲null,即表示是BootStrap累裝載器開發

ExtClassLoader類加載器:jar
AppClassLoader類加載器:啓動類get


線程中的類加載器:Thread.setContextClassLoader()方法設置線程的上下文類裝載器虛擬機

相關文章
相關標籤/搜索