當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 編程語言 » java類的載入器

java類的載入器-九游会j9娱乐平台

發布時間: 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程序代碼。初始化階段是執行類構造器方法的過程。

熱點內容
愛奇藝正義聯盟為啥不能緩存 發布:2024-01-20 00:52:13 瀏覽:248
caccess查詢資料庫 發布:2024-01-20 00:43:10 瀏覽:769
xp文件夾圖標更改 發布:2024-01-20 00:43:03 瀏覽:19
python和node 發布:2024-01-20 00:37:12 瀏覽:194
android拖拉 發布:2024-01-20 00:00:49 瀏覽:583
少兒編程課程體系介紹 發布:2024-01-20 00:00:48 瀏覽:846
我說你做下載ftp 發布:2024-01-20 00:00:47 瀏覽:8
安卓驅動培訓哪裡好 發布:2024-01-19 23:55:41 瀏覽:987
python轉為字元串 發布:2024-01-19 23:51:39 瀏覽:272
合同文件夾 發布:2024-01-19 23:50:52 瀏覽:740
网站地图