【Java】26.常用API之lang.Class類與ClassLoader類

定義作用:lang下的Class 類是Class類的表示正在運行的Java應用程序中的類和接口,用於記錄一個特定的類在運行時的類型信息。一個類的定義包含成員變量,成員方法,還有這個類實現的接口,以及這個類的父類

 

自動構建:Class類沒有公共的構造方法,Class對象是在編譯後加載類時 Java 虛擬機以及通過調用類加載器中的 defineClass 方法自動構造。
 

常用方法:返回類名稱、類裝載器、AnnotatedType對象、對象註釋、Constructor對象以及所有與類相關的東西。

 

1.   getName()                 

返回對象的類名

返回String類型

 

2.static forName(String ClassName)   

使用ClassName指定的、與類或接口相聯繫的class對象;調用此方法相當於:

Class.forName(className, true, currentLoader)

返回Class類型

 

3.static forName(String name,boolean initialize,ClassLoader loader)   

使用給定的類加載器返回與給定字符串名稱的類或接口相關聯的 對象。可用於安裝驅動程序。

返回Class類型

 

4.newInstance()

根據某個Class對象產生其對應類的實例對象。需要強調的是,它調用的是此類的默認構造方法

返回T對象

 

Class的一些使用技巧:
1、forName和newInstance結合起來使用,可以根據存儲在字符串中的類名創建對象。例如
    Object obj = Class.forName(s).newInstance();

2、虛擬機爲每種類型管理一個獨一無二的Class對象。因此可以使用==操作符來比較類對象。例如:
    if(e.getClass() == Employee.class)...

3.反射機制
 

補充:這裏需要解釋一下:請記住一句話,java中,一切皆對象。也就是說,基本類型int float 等也會在jvm的內存池像其他類型一樣中生成一個Class對象。數組等組合型數據類型也是會生成一個Class對象的,而且更令人驚訝的是,java中數組的本來面目其實就是某個類,驚訝中的驚訝是,含有相同元素的相同維數的數組還會共同享用同一個Class對象

 

本文部分摘自

https://blog.csdn.net/yxwb1253587469/article/details/62045551

https://blog.csdn.net/u014082714/article/details/50004843                     


java.lang.ClassLoader類

類加載器,類的加載過程等參考文章如下:

1.ClassLoader詳解

https://blog.csdn.net/poorcoder_/article/details/80258725

2.深入理解ClassLoader工作機制(jdk1.8)

https://blog.csdn.net/u014634338/article/details/81434327

3.一看你就懂,超詳細java中的ClassLoader詳解

https://blog.csdn.net/briblue/article/details/54973413

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章