国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 淺談java中類名.class, class.forName(), getClass()的區(qū)別

淺談java中類名.class, class.forName(), getClass()的區(qū)別

2020-10-05 14:43Java教程網(wǎng) Java教程

下面小編就為大家?guī)硪黄獪\談java中類名.class, class.forName(), getClass()的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Class對象的生成方式如下:

1、類名.class   

說明: JVM將使用類裝載器, 將類裝入內(nèi)存(前提是:類還沒有裝入內(nèi)存),不做類的初始化工作.返回Class的對象

2、Class.forName("類名字符串")  (注:類名字符串是包名+類名) 

說明:裝入類,并做類的靜態(tài)初始化,返回Class的對象

3、實(shí)例對象.getClass() 

說明:對類進(jìn)行靜態(tài)初始化、非靜態(tài)初始化;返回引用o運(yùn)行時真正所指的對象(因為:子對象的引用可能會賦給父對象的引用變量中)所屬的類的Class的對象

通過下面的程序,來觀察一下Class對象的生成的原理。

java" id="highlighter_393594">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public class TestClass {
public static void main(String[] args)
{
 
try {
//測試.class
 
Class testTypeClass=TestClassType.class;
 
System.out.println("testTypeClass---"+testTypeClass);
 
 
//測試Class.forName()
 
Class testTypeForName=Class.forName("TestClassType");   
 
System.out.println("testTypeForName---"+testTypeForName);
 
 
//測試Object.getClass()
 
TestClassType testTypeGetClass= new TestClassType();
 
System.out.println("testTypeGetClass---"+testTypeGetClass.getClass());
 
 
 
} catch (ClassNotFoundException e) {
 
// TODO Auto-generated catch block
 
e.printStackTrace();
 
}
}
 
}
 
 class TestClassType{
 
//構(gòu)造函數(shù)
 
public TestClassType(){
 
System.out.println("----構(gòu)造函數(shù)---");
 
}
 
//靜態(tài)的參數(shù)初始化
 
static{
 
System.out.println("---靜態(tài)的參數(shù)初始化---");
 
}
 
//非靜態(tài)的參數(shù)初始化
 
{
 
System.out.println("----非靜態(tài)的參數(shù)初始化---");
 
}   
 
}

測試的結(jié)果如下:

testTypeClass---class TestClassType

---靜態(tài)的參數(shù)初始化---

testTypeForName---class TestClassType

----非靜態(tài)的參數(shù)初始化---

----構(gòu)造函數(shù)---

testTypeGetClass---class TestClassType

根據(jù)結(jié)果可以發(fā)現(xiàn),三種生成的Class對象一樣的。并且程序只打印一次“靜態(tài)的參數(shù)初始化”。

我們知道,靜態(tài)的方法屬性初始化,是在加載類的時候初始化。而非靜態(tài)方法屬性初始化,是new類實(shí)例對象的時候加載。

因此,這段程序說明,三種方式生成Class對象,其實(shí)只有一個Class對象。在生成Class對象的時候,首先判斷內(nèi)存中是否已經(jīng)加載。

所以,生成Class對象的過程其實(shí)是如此的:

當(dāng)我們編寫一個新的java類時,JVM就會幫我們編譯成class對象,存放在同名的.class文件中。在運(yùn)行時,當(dāng)需要生成這個類的對象,JVM就會檢查此類是否已經(jīng)裝載內(nèi)存中。若是沒有裝載,則把.class文件裝入到內(nèi)存中。若是裝載,則根據(jù)class文件生成實(shí)例對象。

以上這篇淺談java中類名.class, class.forName(), getClass()的區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 伊人五月婷婷 | 国产在线观看一区二区三区 | 成年无码av片在线 | 成人免费视频播放 | 91免费在线视频 | 亚洲精品电影在线观看 | 国产日韩欧美视频 | 毛片黄片 | 国产成人一区二区三区 | 亚洲二区视频 | 久久久精品天堂 | 日韩码有限公司在线观看 | 国产成人精品一区二区三区视频 | 日本午夜视频 | 波多野结衣一区二区三区中文字幕 | 一级网站在线观看 | 午夜精品 | 国产精品二区一区二区aⅴ污介绍 | 成人国产精品视频 | 91精品国产人妻国产毛片在线 | 中文字幕专区 | 欧美亚洲综合久久 | 亚洲在线观看一区二区 | 亚洲国产精品无卡做爰天天 | 久久久久成人精品免费播放动漫 | 国产一区影院 | 国产成人精品久久二区二区 | 久久尤物免费一区二区三区 | 久久h| 国产日韩精品在线观看 | 中文字幕在线第一页 | 午夜精品网站 | 国产一区二区三区免费视频 | 国产精品一二三区 | 九九热精品在线播放 | av黄色影院 | 久久久免费网站 | 粉嫩欧美一区二区三区高清影视 | 国产精品久久久久久久久久久久久 | 亚洲精品系列 | 在线免费国产 |