摘要:類加載器分類類加載器負責根據(jù)類的全限定名將文件加載到內(nèi)存,生成類的對象。其為,且是我們自定義類默認的類加載器。具體的源碼分析可以參見深入理解類加載器。
類加載器分類
類加載器負責根據(jù)類的全限定名將class文件加載到JVM內(nèi)存,生成Class類的對象。它分為以下幾種類型:
Bootstrap Classloader
由C++所寫,在JVM啟動后初始化,負責加載%JAVA_HOME%/jre/lib,-Xbootclasspath參數(shù)指定的路徑以及%JAVA_HOME%/jre/classes中的類
ExtClassLoader
是sun.misc.Launcher的內(nèi)部類,繼承自java.net.URLClassLoader->java.security.SecureClassLoader->java.lang.ClassLoader,在rt.jar中,由Bootstrap Classloader加載,負責加載%JAVA_HOME%/jre/lib/ext和java.ext.dirs系統(tǒng)變量指定路徑中的類。parent ClassLoader為null(因為Bootstrap Classloader并不是由java實現(xiàn)的)。
AppClassLoader
也是sun.misc.Launcher的內(nèi)部類,繼承自java.net.URLClassLoader,負責加載來自在命令java中的-classpath或者java.class.path系統(tǒng)屬性或者CLASSPATH系統(tǒng)屬性所指定的路徑中的類。其parent ClassLoader為ExtClassLoader,且是我們自定義類默認的類加載器。
雙親委派機制:如果一個類未加載,那么必須先由其父加載器(Bootstrap Classloader可以認為是ExtClassLoader父加載器)嘗試加載,如果父加載器在其路徑內(nèi)找不到該類才由子加載器加載。可以防止核心類被外來類覆蓋。具體的源碼分析可以參見深入理解Java類加載器(ClassLoader)。
下面是結(jié)合源碼,畫出的利用AppClassLoader查找類的流程圖:
我們通常寫的用class(首字母c小寫)定義的類,表征了java虛擬機里對象的類型(java是強類型語言),但同時這些類又都是java.lang.Class(首字母C大寫)的對象,通過AppClassLoader加載進虛擬機內(nèi)存方法區(qū)。每個類都對應(yīng)一個獨一無二的Class對象,包括Java基本類型、void關(guān)鍵字及數(shù)組(所有同一維度和類型的數(shù)組擁有同樣的Class,數(shù)組的長度不做考慮。對應(yīng)Class的名字表示為維度和類型。比如一個整型數(shù)據(jù)的Class名為“[I”,字節(jié)型三維數(shù)組Class名為“[[[B”,兩維對象數(shù)組Class名為“[[Ljava.lang.Object”)。得到Class對象的方法有三種:
MyObject foo = New MyObject(); Class c = foo.getClass(); Class c = Class.ForName("MyObject"); Class c = MyObject.class;
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74791.html
摘要:慶幸的是,已經(jīng)支持反射機制,來看看這個特性吧元數(shù)據(jù)反射可以通過安裝包來使用元數(shù)據(jù)反射的若要使用它,我們需要在中設(shè)置為,同時添加的引用,同時加載文件。復(fù)雜類型序列化的團隊為復(fù)雜類型的元數(shù)據(jù)序列化做出了努力。 本篇內(nèi)容包括如下部分: 為什么JavaScript中需要反射 元數(shù)據(jù)反射API 基本類型序列化 復(fù)雜類型序列化 為什么JavaScript中需要反射? 關(guān)于反射的概念,摘自百度百...
摘要:所有這些類對于和應(yīng)用程序都是可見的。或者日志實現(xiàn)類。其中包括稱為的的增強類以及由內(nèi)部使用的庫的軟件包重命名副本。這個類加載器搜索的位置由中的屬性定義。中的所有其他類加載器都遵循通常的代理模式。 最好先了解Java的雙親委派機制再看這篇文章。 整體架構(gòu) Bootstrap | System | Common ...
摘要:樣式優(yōu)先級原則總的原則規(guī)定擁有更高確定度的選擇器優(yōu)先級更高如果樣式中包含沖突的規(guī)則,且它們具有相同的確定度。 樣式優(yōu)先級原則 總的原則1.CSS規(guī)定擁有更高確定度的選擇器優(yōu)先級更高2.如果樣式中包含沖突的規(guī)則,且它們具有相同的確定度。那么,后出現(xiàn)的規(guī)則優(yōu)先級高。 優(yōu)先級:由高到低(從上到下) !important 內(nèi)聯(lián)(1,0,0,0) id: (0,1,0,0) 類:(0,0,1,...
閱讀 2992·2021-11-25 09:43
閱讀 3639·2021-08-31 09:41
閱讀 1251·2019-08-30 15:56
閱讀 2139·2019-08-30 15:55
閱讀 3002·2019-08-30 13:48
閱讀 2822·2019-08-29 15:15
閱讀 991·2019-08-29 15:14
閱讀 2663·2019-08-28 18:26