通州北大青鳥學校詳解Java裝載器(上)

Java裝載器也是Java的四大核心技術之一。這篇文章中,北京北大青鳥學校學術部老師要為各位講解一下裝載器的體系結構。

北京北大青鳥學校技術專家介紹:一個Java應用程序可以使用兩種類裝載器:“啟動(bootstrap)"類裝載器”和“用戶定義的類裝載器”。啟動類裝載器(這是系統(tǒng)中唯一的)是Java虛擬機實現(xiàn)的一部分。啟動類裝載器通常使用某種默認方式從本地磁盤中裝載類,包括Java API類(啟動類裝載器也被稱為原始類裝載器、系統(tǒng)類裝載器或者默認類裝載器)。

Java應用程序能夠在運行時安裝用戶定義的類裝載器,這種類裝載器能夠使用自定義的方式來裝載類。例如,從網(wǎng)絡下載class文件。盡管啟動類裝載器是虛擬機實現(xiàn)的本質部分,而用戶定義的類裝載器不是,但用戶定義的類裝載器能夠用Java來編寫,能夠被編譯成class文件,能夠被虛擬機裝載,還能夠像其它對象一樣實例化。

由于有用戶定義類裝載器,所以不必再編譯的時候就知道運行中的Java應用程序中最終會加入的所有的類。用戶定義的類裝載器使得在運行擴展Java應用程序成為可能。當它運行時,應用程序能夠解決它需要哪些額外的類,能夠決定是使用一個或是更多的用戶定義的類裝載器來裝載。由于類裝載器是用Java編寫的,所以用任何在Java代碼中可以表述的風格來進行類裝載。這些類可以通過網(wǎng)絡下載,可以從某些數(shù)據(jù)庫中獲取,甚至可以動態(tài)生成。

每一個類被裝載的時候,Java虛擬機都監(jiān)視這個類,看到它到底是被啟動類裝載器還是被用戶定義類裝載器裝載。當被裝載的類引用了另外一個類時,虛擬機就會使用裝載第一個類的類裝載器裝載引用的類。例如,如果虛擬機使用一個特定的類裝載器裝載Volcano這個類,它就會使用這個類裝載器裝載Volcano類使用的所有類。(北京北大青鳥學校學術部提供,未完待續(xù))

北大青鳥網(wǎng)上報名
北大青鳥招生簡章