最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA反射機(jī)制中g(shù)etClass和class對比分析

 更新時間:2017年11月16日 15:08:50   作者:zhouyy40308  
這篇文章主要介紹了JAVA反射機(jī)制中g(shù)etClass和class對比分析,具有一定參考價值,需要的朋友可以了解下。

java有兩個獲得類名的方法getClass()和class(),這兩個方法看似一樣,實則不然。這兩個方法涉及到了java中的反射。

所謂反射,可以理解為在運行時期獲取對象類型信息的操作。傳統(tǒng)的編程方法要求程序員在編譯階段決定使用的類型,但是在反射的幫助下,編程人員可以動態(tài)獲取這些信息,從而編寫更加具有可移植性的代碼。嚴(yán)格地說,反射并非編程語言的特性,因為在任何一種語言都可以實現(xiàn)反射機(jī)制,但是如果編程語言本身支持反射,那么反射的實現(xiàn)就會方便很多。

類型類

要知道類型信息在運行時是如何表示的,這是由Class對象來完成的,它包含了與類有關(guān)的信息。Class對象就是用來創(chuàng)建所有“常規(guī)”對象的,Java使用Class對象來執(zhí)行RTTI,即使你正在執(zhí)行的是類似類型轉(zhuǎn)換這樣的操作。

每個類都會產(chǎn)生一個對應(yīng)的Class對象,也就是保存在.class文件。所有類都是在對其第一次使用時,動態(tài)加載到JVM的,當(dāng)程序創(chuàng)建一個對類的靜態(tài)成員的引用時,就會加載這個類。Class對象僅在需要的時候才會加載,static初始化是在類加載時進(jìn)行的。

我們知道在Java中一切都是對象,我們一般所使用的對象都直接或間接繼承自O(shè)bject類。Object類中包含一個方法名叫g(shù)etClass,利用這個方法就可以獲得一個實例的類型類。類型類指的是代表一個類型的類,因為一切皆是對象,類型也不例外,在Java使用類型類來表示一個類型。所有的類型類都是Class類的實例。

聯(lián)系

一般情況下,getclass()方法和class()方法是等價的,都可以獲得一個類型名,例如下面的代碼:

class A{
	public void func(){
	}
}
public class Test {
	public static void main(String[] args) {
		A a = new A();
		System.out.println(a.getClass()+" "+A.class);
	}
}

輸出的結(jié)果為:classAclassA

區(qū)別:

兩者最直接的區(qū)別就是,getClass()是一個類的實例所具備的方法,而class()方法是一個類的方法。

另外getClass()是在運行時才確定的,而class()方法是在編譯時就確定了。

例如下面的程序:

class A{
	public void func(){
	}
}
class B extends A{
}
public class Test {
	public static void main(String[] args) {
		A a = new A();
		B b = new B();
		A ab = new B();
		System.out.println(a.getClass()+" "+A.class);
		System.out.println(b.getClass()+" "+B.class);
		System.out.println(ab.getClass());
		ab = a;
		System.out.println(ab.getClass());
	}
}

結(jié)果:
class A class A
class B class B
class B
class A

從最后的結(jié)果為class B來看,當(dāng)出現(xiàn)繼承和多態(tài)時,getclass和class方法的確實有所不同,因為是在運行時確定的,所以結(jié)果是ab在運行到這一時刻是所屬的類型。

總結(jié)

以上就是本文關(guān)于JAVA反射機(jī)制中g(shù)etClass和class異同的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

Java反射之Call stack introspection詳解

關(guān)于Java反射機(jī)制 你需要知道的事情

Java的RTTI和反射機(jī)制代碼分析

如有不足之處,歡迎留言指出。

相關(guān)文章

  • java實現(xiàn)解析Cron時間表達(dá)式為中文描述

    java實現(xiàn)解析Cron時間表達(dá)式為中文描述

    這篇文章主要為大家詳細(xì)介紹了java如何實現(xiàn)解析Cron時間表達(dá)式為中文描述,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解下
    2023-11-11
  • 關(guān)于SpringCloud的Bus消息總線圖文詳解

    關(guān)于SpringCloud的Bus消息總線圖文詳解

    這篇文章主要介紹了關(guān)于SpringCloud的Bus消息總線圖文詳解,Spring Cloud Bus是用來將分布式系統(tǒng)的節(jié)點與輕量級消息系統(tǒng)鏈接起來的框架,它整合了Java的事件處理機(jī)制和消息中間件的功能,需要的朋友可以參考下
    2023-05-05
  • SpringBoot?2.7.18?集成?Mybatis?Plus?+?Druid的實例詳解

    SpringBoot?2.7.18?集成?Mybatis?Plus?+?Druid的實例詳解

    Mybatis和MybatisPlus都是流行的持久層框架,MybatisPlus在Mybatis基礎(chǔ)上增加了更多便捷的功能,如自動CRUD、分頁插件等,文章還提到了Entity、Mapper、Service、Controller等組件的基本使用方法,為開發(fā)者提供了一套完整的集成方案
    2024-10-10
  • java編寫簡單的ATM存取系統(tǒng)

    java編寫簡單的ATM存取系統(tǒng)

    這篇文章主要介紹了java編寫簡單的ATM存取系統(tǒng),附上思路和具體實現(xiàn)代碼,適合新人練手用,推薦給小伙伴們。
    2015-02-02
  • java 中 poi解析Excel文件版本問題解決辦法

    java 中 poi解析Excel文件版本問題解決辦法

    這篇文章主要介紹了java 中 poi解析Excel文件版本問題解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • Java運算符從見過到掌握下

    Java運算符從見過到掌握下

    計算機(jī)的最基本用途之一就是執(zhí)行數(shù)學(xué)運算,作為一門計算機(jī)語言,Java也提供了一套豐富的運算符來操縱變量,本篇對大家的學(xué)習(xí)或工作具有一定的價值,緊接上篇,需要的朋友可以參考下
    2021-09-09
  • Spring容器中已經(jīng)存在的Bean替換示例

    Spring容器中已經(jīng)存在的Bean替換示例

    這篇文章主要為大家介紹了Spring容器中已經(jīng)存在的Bean替換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • SpringBoot中的配置類(@Configuration)

    SpringBoot中的配置類(@Configuration)

    這篇文章主要介紹了SpringBoot中的配置類(@Configuration),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot在項目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的方法

    SpringBoot在項目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的方法

    這篇文章主要給大家介紹了SpringBoot在項目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的兩種方法,實現(xiàn)DisposableBean接口和使用@PreDestroy注解,文中有詳細(xì)的代碼講解,具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • Java并發(fā)編程中的synchronized解析

    Java并發(fā)編程中的synchronized解析

    這篇文章主要介紹了Java并發(fā)編程中的synchronized解析,synchronized是一個重量級的鎖,使用不當(dāng)?shù)脑捚鋵崟刮覀兂绦驁?zhí)行的效率大打折扣,今天我們就對其進(jìn)行講解,需要的朋友可以參考下
    2023-11-11

最新評論

龙川县| 富民县| 柳江县| 晋中市| 稻城县| 偃师市| 定州市| 绥棱县| 长泰县| 聊城市| 建水县| 济南市| 万州区| 固阳县| 江陵县| 大厂| 金沙县| 鲁甸县| 亚东县| 土默特左旗| 华池县| 鹤岗市| 信宜市| 三都| 武定县| 通河县| 赤水市| 定州市| 盈江县| 左权县| 镇安县| 高要市| 北票市| 同心县| 长兴县| 大埔县| 秭归县| 科技| 乡城县| 界首市| 赤城县|