黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java基礎(chǔ)學(xué)習(xí):java反射機(jī)制及原理

Java基礎(chǔ)學(xué)習(xí):java反射機(jī)制及原理

更新時(shí)間:2020-04-17 14:12:46 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2878次

    一反射機(jī)制的概念:

    指在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法,對(duì)于任意一個(gè)對(duì)象,都能調(diào)用它的任意一個(gè)方法.這種動(dòng)態(tài)獲取信息,以及動(dòng)態(tài)調(diào)用對(duì)象方法的功能叫java語言的反射機(jī)制.

    二反射機(jī)制的應(yīng)用:

    生成動(dòng)態(tài)代理,面向切片編程(在調(diào)用方法的前后各加棧幀).

    三反射機(jī)制的原理:

    1首先明確的概念:一切皆對(duì)象----類也是對(duì)象.

    2然后知道類中的內(nèi)容:modifierconstructorfieldmethod.

    3其次明白加載:當(dāng)Animal.class在硬盤中時(shí),是一個(gè)文件,當(dāng)載入到內(nèi)存中,可以認(rèn)為是一個(gè)對(duì)象,是java.lang.class的對(duì)象.

    當(dāng)運(yùn)行程序時(shí),實(shí)例化時(shí)產(chǎn)生Animal.class對(duì)象,這兩個(gè)對(duì)象有什么區(qū)別?

    如下圖,上面的Animal.class對(duì)象是java.lang.class的對(duì)象;下面的對(duì)象是Animal.class實(shí)例化產(chǎn)生的對(duì)象

Java基礎(chǔ)學(xué)習(xí):java反射機(jī)制及原理

    4當(dāng)Animal.class載入到JVM中,JVM是怎么識(shí)別Animal.class中含有的方法,成員變量,構(gòu)造方法等內(nèi)容?

    如下圖,Animal.class實(shí)例化對(duì)象中成員變量毛色=紅色;

    加載到內(nèi)存的時(shí)候,毛色=null,是在實(shí)例化的時(shí)候毛色被賦值為紅色.

  Java基礎(chǔ)學(xué)習(xí):java反射機(jī)制及原理

    Animal.class中毛色這個(gè)屬性對(duì)于java.lang.class來說,是Field的一個(gè)屬性值,毛色對(duì)于java.lang.class來說也是一個(gè)對(duì)象.這也是反射機(jī)制動(dòng)態(tài)獲取信息,以及動(dòng)態(tài)調(diào)用對(duì)象方法的原因.

    下圖是Java.lang.class中的方法

1587103903544087.pngJava基礎(chǔ)學(xué)習(xí):java反射機(jī)制及原理

 

Java基礎(chǔ)學(xué)習(xí):java反射機(jī)制及原理

    在java.lang.class中,毛色是Field的一個(gè)屬性值,Animal中所有的方法,成員變量,構(gòu)造器,修飾符都是按照java.lang.class中的標(biāo)準(zhǔn)去寫的,否則會(huì)在編譯的時(shí)候報(bào)錯(cuò)

    Java基礎(chǔ)學(xué)習(xí):java反射機(jī)制及原理

    四反射機(jī)制簡單實(shí)例代碼

    publicclass_14_ReflectTest07

    {

    publicstaticvoidmain(String[]args)throwsException{

    //1.獲取類

    Classc=Class.forName("_12_CustomerService");

    //獲取某個(gè)特定的方法

    //通過:方法名+形參列表

    Methodm=c.getDeclaredMethod("login",String.class,String.class);

    //通過反射機(jī)制執(zhí)行l(wèi)ogin方法.

    Objecto=c.newInstance();

    //調(diào)用o對(duì)象的m方法,傳遞"admin""123"參數(shù),方法的執(zhí)行結(jié)果是retValue

    ObjectretValue=m.invoke(o,"admin","123");

    System.out.println(retValue);//true

    }

    }

    publicclass_12_CustomerService

    {

    //登錄

    publicbooleanlogin(Stringname,Stringpwd){

    if("admin".equals(name)&&"123".equals(pwd)){

    returntrue;

    }

    returnfalse;

    }

    //退出

    publicvoidlogout(){

    System.out.println("系統(tǒng)已安全退出!");

    }

    }

 以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):java反射機(jī)制及原理”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 成免费网站 | 国产日韩欧美亚洲精品95 | 日韩精品一区二区三区在线观看 | 高清人人天天夜夜曰狠狠狠狠 | 欧美在线中文字幕高清的 | 伦理片中文 | 激情五月激情综合色区 | 日本三级午夜 | www午夜视频| 一区二区三区在线视频播放 | 亚洲精品国产成人 | 国产精品二区页在线播放 | 亚洲综合香蕉 | 成年看的视频在线观看 | 一级做a爱过程免费视频时看 | 羞羞视频免费网站欧美 | 日韩欧美不卡一区二区三区 | 羞羞视频成人 | 在线观看视频中文字幕 | 国产成人精品在线观看 | 亚洲综合激情另类小说区 | 毛片免费毛片一级jjj毛片 | 精品欧美一区二区三区在线观看 | 日日摸夜夜添夜夜添成人 | 国产成人精品久久 | 国产欧美一区二区成人影院 | 波多野结衣视频一区 | 亚洲免费在线视频播放 | 97色老99久久九九爱精品 | 免费观看的毛片 | 99久久er这里只有精品17 | 黄图视频在线观看 | 日韩免费高清 | 欧美色图偷窥自拍 | 亚洲另类视频在线观看 | 青青国产成人久久91 | 日本一区二区三区高清福利视频 | 中文字幕一区二区三区在线播放 | 成人免费视频观看无遮挡 | 久久精品网站免费观看 | 大黄网站免费 |