91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解析Java類加載器

發布時間:2021-11-26 10:03:20 來源:億速云 閱讀:150 作者:柒染 欄目:編程語言

這篇文章給大家介紹怎么解析Java類加載器,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

顧名思義,類加載器(class loader)用來加載 Java 類到 Java 虛擬機中。一般來說,Java 虛擬機使用 Java 類的方式如下:Java 源程序(.java 文件)在經過 Java 編譯器編譯之后就被轉換成 Java 字節代碼(.class 文件)。類加載器負責讀取 Java 字節代碼,并轉換成 java.lang.Class類的一個實例。每個這樣的實例用來表示一個 Java 類。通過此實例的 newInstance()方法就可以創建出該類的一個對象。實際的情況可能更加復雜,比如 Java 字節代碼可能是通過工具動態生成的,也可能是通過網絡下載的。
基本上所有的類加載器都是 java.lang.ClassLoader類的一個實例。下面詳細介紹這個 Java 類。
java.lang.ClassLoader類介紹
java.lang.ClassLoader類的基本職責就是根據一個指定的類的名稱,找到或者生成其對應的字節代碼,然后從這些字節代碼中定義出一個 Java 類,即 java.lang.Class類的一個實例。
ClassLoader提供了一系列的方法,比較重要的方法如:

方法        說明
getParent()        返回該類加載器的父類加載器。
loadClass(String name)        加載名稱為 name的類,返回的結果是 java.lang.Class類的實例。
findClass(String name)        查找名稱為 name的類,返回的結果是 java.lang.Class類的實例。
findLoadedClass(String name)        查找名稱為 name的已經被加載過的類,返回的結果是 java.lang.Class類的實例。
defineClass(String name, byte[] b, int off, int len)        把字節數組 b中的內容轉換成 Java 類,返回的結果是 java.lang.Class類的實例。這個方法被聲明為 final的。
resolveClass(Class c)        鏈接指定的 Java 類。

類加載器的樹狀組織結構
Java 中的類加載器大致可以分成兩類,一類是系統提供的,另外一類則是由 Java 應用開發人員編寫的。系統提供的類加載器主要有下面三個:
引導類加載器(bootstrap class loader):它用來加載 Java 的核心庫,是用原生代碼來實現的,并不繼承自java.lang.ClassLoader。
擴展類加載器(extensions class loader):它用來加載 Java 的擴展庫。Java 虛擬機的實現會提供一個擴展庫目錄。該類加載器在此目錄里面查找并加載 Java 類。
系統類加載器(system class loader):它根據 Java 應用的類路徑(CLASSPATH)來加載 Java 類。一般來說,Java 應用的類都是由它來完成加載的。可以通過 ClassLoader.getSystemClassLoader()來獲取它。
除了系統提供的類加載器以外,開發人員可以通過繼承 java.lang.ClassLoader類的方式實現自己的類加載器,以滿足一些特殊的需求。
除了引導類加載器之外,所有的類加載器都有一個父類加載器。通過 上面表中給出的 getParent()方法可以得到。對于系統提供的類加載器來說,系統類加載器的父類加載器是擴展類加載器,而擴展類加載器的父類加載器是引導類加載器;對于開發人員編寫的類加載器來說,其父類加載器是加載此類加載器 Java 類的類加載器。因為類加載器 Java 類如同其它的 Java 類一樣,也是要由類加載器來加載的。一般來說,開發人員編寫的類加載器的父類加載器是系統類加載器。類加載器通過這種方式組織起來,形成樹狀結構。樹的根節點就是引導類加載器。下圖中給出了一個典型的類加載器樹狀組織結構示意圖,其中的箭頭指向的是父類加載器。

關于怎么解析Java類加載器就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广宁县| 牙克石市| 灌南县| 苍山县| 神木县| 无极县| 洛宁县| 汕尾市| 湖北省| 永川市| 台山市| 五莲县| 小金县| 富顺县| 红安县| 砀山县| 宁武县| 武清区| 临邑县| 宣汉县| 新泰市| 昌宁县| 杨浦区| 布拖县| 合作市| 射洪县| 乐都县| 体育| 武乡县| 周口市| 江永县| 葫芦岛市| 林甸县| 通河县| 石楼县| 宁晋县| 二手房| 卓尼县| 治县。| 瓦房店市| 邯郸县|