Java 反射機制

反射: 將類的各個部分封裝成對象,這就是反射機制
可以在運行過程中 操作這些對象

類加載有下面幾個階段


image.png

獲取Class對象的方式

  1. Class.forName("全類名"):將字節(jié)碼加載進內(nèi)存,返回class對象
    多用于配置文件,將類名定義在配置文件中,讀取文件,加載類

2.類名.class :通過類名的屬性class獲取
多用于參數(shù)的傳遞

3.對象.getClass();在Object定義
多用于對象的獲取字節(jié)碼

public class ReflectionDemo {
    public static void main(String[] args) throws ClassNotFoundException {
        //使用類名獲取
        Class cls1 = Class.forName("Java_Basic.Person");
        System.out.println(cls1);

        // 類名.class
        Class cls2= Person.class;
        System.out.println(cls2);

        //對象.getClass()
        Person p = new Person();
        Class cls3=p.getClass();

        System.out.println(cls1==cls2);
        System.out.println(cls2==cls3);
        
        
    }
}

比較三個結(jié)果都是true
說明類對象在加載過程中只會被加載一次

Class對象的功能

獲取功能
  獲取成員變量們
  獲取構(gòu)造方法們
  獲取成員方法們
  獲取類名
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.1 框架的概念 ? 半成品軟件??梢栽诳蚣艿幕A(chǔ)上進行軟件開發(fā),簡化編碼。學(xué)習(xí)框架并不需要了解反射,但是要...
    AaFaa閱讀 349評論 0 0
  • 反射是框架設(shè)計的靈魂 軟件框架:軟件本成品,能夠幫助我們提高開發(fā)效率。Spring,SpringMVC,Mybat...
    六藝str閱讀 298評論 0 0
  • Java 語言允許通過程序化的方式間接對 Class 進行操作, Class 文件由類裝載器裝載后,在 JVM 中...
    deniro閱讀 1,425評論 0 40
  • 一、Java的解釋機制 Java編寫的程序,一次編譯,只要裝有Java虛擬機JVM的地方就可以在任意平臺到處運行。...
    BestFei閱讀 316評論 0 2
  • 1.理解反射的基礎(chǔ):Class類 眾所周知Java有個Object 類,是所有Java 類的繼承根源,其內(nèi)聲明了數(shù)...
    Cat9527閱讀 596評論 1 5

友情鏈接更多精彩內(nèi)容