當前位置:首頁 » 編程語言 » java類的載入器

java類的載入器

發布時間: 2024-01-12 05:15:02

1. java 中的class.forName()是什麼意思

Class.forName:返回與給定的字元串名稱相關聯類或介面的Class對象。

Class.forName是一個靜態方法,同樣可以用來載入類。該方法有兩種形式:Class.forName(String name, boolean initialize, ClassLoader loader)和Class.forName(String className)。第一種形式的參數name表示的是類的全名;initialize表示是否初始化類;loader表示載入時使用的類載入器。第二種形式則相當於設置了參數initialize的值為true,loader的值為當前類的類載入器。

如下圖所示,java類型的屬性名稱叫name,可以通過forName的方法獲取到這個類的實例,從而獲取到類裡面的屬性。

(1)java類的載入器擴展閱讀:

注意:

在指定類給 class.forName() 方法後,如果找不到指定的類,會拋出ClassNotFoundException異常。Class 的靜態 forName() 方法有兩個版本,上面的代碼是只指定類名稱的版本,而另一個版本可以讓你指定類名稱、載入時是否運行靜態區塊、指定類載入器:

Static Class forName(String name, boolean initialize, ClassLoader loader)

默認在載入類的時候,如果類中有定義靜態區塊則會運行它。你可以使用 class.forName() 的第二個版本,將initialize設定為 false,這樣在載入類時並不會立即運行靜態區塊,而會在使用類建立對象時才運行靜態區塊。為了印證,可以先設計一個測試類:

package cn.sunzn.demo;public class TestClass { static {
System.out.println("[運行靜態區塊]");
}

}

2. java靜態資源(靜態方法,靜態屬性)是程序一運行就載入到jvm中,還是當被調用的時候才進行載入呢

java靜態資源(靜態方法,靜態屬性)是程序一運行就載入到jvm中的。

1、類中的靜態屬性會被加入到類對象(也可以叫做類的模板,是類的描述) 的構造器中,靜態方法也會被加入到類對象中。

2、當第一次使用類時,JVM會通過類載入器,載入類對象,從而初始化靜態屬性,並裝入類的方法,包括靜態方法和實例方法(方法不會被調用,只是載入,從這個意義上來說,靜態方法和實例方法是類似的)。嫌乎殲

3、當頃孝創建類的實例對象時,JVM會調用類的構造器,從而初始化類的屬性。

(2)java類的載入器擴展閱讀:

JVM 類載入機制

JVM類載入機制分為五個部分:載入,驗證,准備,解析,初始化,下面我們就分別來看一下這五個過程。

1、載入

載入是類載入過程中的一個階段,這個階段會在內存中生成一個代表這個類的java.lang.Class對象,作為方法區這個類的各種數據的入口。注意這里不一定非得要從一個Class文件獲取,這里既可以從ZIP包中讀取(比如從jar包和war包中讀取),也可以在運行時計算生成(動態代理),也可以由其它文件生成(比如將JSP文件轉換成對應的Class類)。

2、驗證

這一階段的主要目的是為了確保Class文件的位元組流中包含的信息是否符合當前虛擬機的要求,並且不會危害虛擬機自身的安全。

3、准備

准備階段是正式為類變數分配內存並設置類變數的初始值階段,即在方法區中分配這些變數芹沖所使用的內存空間。

4、解析

解析階段是指虛擬機將常量池中的符號引用替換為直接引用的過程。符號引用就是class文件中的:

CONSTANT_Class_info

CONSTANT_Field_info

CONSTANT_Method_info

等類型的常量。

5、初始化

初始化階段是類載入最後一個階段,前面的類載入階段之後,除了在載入階段可以自定義類載入器以外,其它操作都由JVM主導。到了初始階段,才開始真正執行類中定義的Java程序代碼。初始化階段是執行類構造器<client>方法的過程。

熱點內容
牆加密區域 發布:2024-11-30 02:33:32 瀏覽:630
idrac中怎麼控制伺服器 發布:2024-11-30 02:18:27 瀏覽:910
蜘蛛礦池伺服器地址 發布:2024-11-30 02:13:57 瀏覽:169
網易雲訪問記錄 發布:2024-11-30 02:13:17 瀏覽:376
java的數據類型有哪些 發布:2024-11-30 02:12:42 瀏覽:546
win8訪問win7共享 發布:2024-11-30 02:08:33 瀏覽:340
編程錄入錯誤 發布:2024-11-30 02:01:58 瀏覽:733
相機存儲卡無法讀取 發布:2024-11-30 02:00:15 瀏覽:772
美國訪問學者中介 發布:2024-11-30 01:49:47 瀏覽:491
手機版我的世界網易伺服器地鐵 發布:2024-11-30 01:38:57 瀏覽:522