java獲取Class對象的方法
導語:java中的Class類對象是可以人工自然性的得到的,下面是相關介紹,歡迎參考!
獲取Class對象有三種方式:
1.通過Object類的getClass()方法。例如:
Class c1 = new String("")lass();
2.通過Class類的靜態方法——forName()來實現:
Class c2 = ame("MyObject");
3.如果T是一個已定義的類型的話,在java中,它的s文件名:s就代表了與其匹配的Class對象,例如:
Class c3 = s;
Class c4 = s;
Class c5 = Double[]s;
這裏需要解釋一下3:請記住一句話,java中,一切皆對象。也就是説,基本類型int float 等也會在jvm的內存池像其他類型一樣中生成一個Class對象。而數組等組合型數據類型也是會生成一個Class對象的,而且更令人驚訝的是,java中數組的本來面目其實就是某個類,驚訝中的驚訝是,含有相同元素的相同維數的數組還會共同享用同一個Class對象!其實根據我的臆想,數組的length性質應該就保存在這個Class對象裏面。
Class類中存在以下幾個重要的方法:
ame()
一個Class對象描述了一個特定類的特定屬性,而這個方法就是返回String形式的該類的簡要描述。由於歷史原因,對數組的Class對象調用該方法會產生奇怪的結果。
nstance()
該方法可以根據某個Class對象產生其對應類的.實例。需要強調的是,它調用的是此類的默認構造方法。例如:
MyObject x = new MyObject();
MyObject y = lass()nstance();
lassLoader()
返回該Class對象對應的類的類加載器。
omponentType()
該方法針對數組對象的Class對象,可以得到該數組的組成元素所對應對象的Class對象。例如:
int[] ints = new int[]{1,2,3};
Class class1 = lass();
Class class2 = omponentType();
而這裏得到的class2對象所對應的就應該是int這個基本類型的Class對象。
uperClass()
返回某子類所對應的直接父類所對應的Class對象。
ray()
判定此Class對象所對應的是否是一個數組對象。
-
40個Java多線程問題總結
Java多線程是什麼Java提供的併發(同時、獨立)處理多個任務的機制。多個線程共存於同一JVM進程裏面,所以共用相同的內存空間,較之多進程,多線程之間的通信更輕量級。依我的理解,Java多線程完全就是為了提高CPU的利用率。Java的線程有4種狀態,新建(New)、運行(Runnabl...
-
Java 正則表達式
Java是一門編程語言,那麼大家知道Java正則表達式是怎樣的呢?下面一起來看看!Java正則表達式正則表達式定義了字符串的模式。正則表達式可以用來搜索、編輯或處理文本。正則表達式並不僅限於某一種語言,但是在每種語言中有細微的差別。正則表達式實例一個字符串其...
-
如何學好Java語言編程
決定好想學什麼編程語言了嗎,現在就讓我們開始學習吧。所有你需要做的就是打開一本書,然後開始閲讀,是這樣的嗎?不全是這樣的。learn-first我會給出學習第一門編程語言的理想方法佈局,你不僅應該學習這個佈局方法,還應該享受精通它——如果不能掌握的話。學習第一門...
-
計算機二級考試Java精選訓練題
下面是應屆畢業生考試網小編搜索整理的計算機二級考試Java精選訓練題,希望對大家有所幫助。[簡答題]本題中,在下畫線上填寫代碼,指定變量b為字節型,變量f為單精度實型,變量l為64位整型。publicclassjaval{publicstaticvoidmain(String[-]args){b=49;f=8.9f;l=0xfedl...