反射機制的定義欢瞪,作用是什么?以及Java反射機制API

1.反射機制定義

反射的概念是由Smith在1982年首次提出的徐裸,主要是指程序可以訪問遣鼓、檢測和修改其本身狀態(tài)或行為的一種能力。

在Java環(huán)境中倦逐,反射機制允許程序在執(zhí)行時獲取某個類自身的定義信息譬正,例如熟悉和方法等也可以實現(xiàn)動態(tài)創(chuàng)建 類的對象、變更屬性的內(nèi)容或執(zhí)行特定的方法的功能檬姥。從而使Java具有動態(tài)語言的特性曾我,增強了程序的靈活性和可移植性。


2.反射機制的作用

Java反射機制主要用于實現(xiàn)以下功能健民。

(1)在運行時判斷任意一個對象所屬的類型抒巢。

(2)在運行時構(gòu)造任意一個類的對象。

(3)在運行時判斷任意一個類所具有的成員變量和方法秉犹。

(4)在運行時調(diào)用任意一個對象的方法蛉谜,甚至可以調(diào)用private方法。

注意:上述功能都是在運行時環(huán)境中崇堵,而不是在編譯時環(huán)境中型诚。


3.Java反射機制API

實現(xiàn)Java反射機制的API在Java.lang.reflect包下,具有以下幾點鸳劳。

(1)Class類:代表一個類狰贯。

(2)Filed類:代表類的成員變量。

(3)Method類:代表類的方法赏廓。

(4)Constructor類:代表類的構(gòu)造方法涵紊。

(5)Array類:提供了動態(tài)創(chuàng)建數(shù)組及訪問數(shù)組元素的靜態(tài)方法。該類中的所有方法都是靜態(tài)的幔摸。


4.應(yīng)用示例

(1)根據(jù)類名獲取類中定義的所有屬性和方法摸柄,實例代碼如下:

Student類的定義如下

Java語言反射提供一種動態(tài)鏈接程序組件的多功能方法。它允許程序創(chuàng)建和控制任何類的對象既忆, 無需提前硬編碼目標(biāo)類驱负。這些特性使得反射特別適用于創(chuàng)建以普通方式與對象協(xié)作的庫嗦玖。


反射在性能方面會有一定的損耗,用于字段和方法接入時反射要遠(yuǎn)慢于直接寫代碼电媳。如果它作為程序 運行中相對很少涉及的部分將不會造成影響踏揣,因為即使測試最壞情況下的計時圖顯示的反射操作也只耗用幾微秒。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末匾乓,一起剝皮案震驚了整個濱河市捞稿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拼缝,老刑警劉巖娱局,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異咧七,居然都是意外死亡衰齐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門继阻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耻涛,“玉大人,你說我怎么就攤上這事瘟檩∧疲” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵墨辛,是天一觀的道長卓研。 經(jīng)常有香客問我,道長睹簇,這世上最難降的妖魔是什么奏赘? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮太惠,結(jié)果婚禮上磨淌,老公的妹妹穿的比我還像新娘。我一直安慰自己凿渊,他們只是感情好伦糯,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嗽元,像睡著了一般。 火紅的嫁衣襯著肌膚如雪喂击。 梳的紋絲不亂的頭發(fā)上剂癌,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音翰绊,去河邊找鬼佩谷。 笑死旁壮,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谐檀。 我是一名探鬼主播抡谐,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼桐猬!你這毒婦竟也來了麦撵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤溃肪,失蹤者是張志新(化名)和其女友劉穎免胃,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惫撰,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡羔沙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了厨钻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扼雏。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖夯膀,靈堂內(nèi)的尸體忽然破棺而出诗充,到底是詐尸還是另有隱情,我是刑警寧澤棍郎,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布其障,位于F島的核電站,受9級特大地震影響涂佃,放射性物質(zhì)發(fā)生泄漏励翼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一辜荠、第九天 我趴在偏房一處隱蔽的房頂上張望汽抚。 院中可真熱鬧,春花似錦伯病、人聲如沸造烁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惭蟋。三九已至,卻和暖如春药磺,著一層夾襖步出監(jiān)牢的瞬間告组,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工癌佩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留木缝,地道東北人便锨。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像我碟,于是被迫代替她去往敵國和親放案。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 整理來自互聯(lián)網(wǎng) 1矫俺,JDK:Java Development Kit吱殉,java的開發(fā)和運行環(huán)境,java的開發(fā)工具...
    Ncompass閱讀 1,537評論 0 6
  • 一:java概述: 1恳守,JDK:Java Development Kit考婴,java的開發(fā)和運行環(huán)境,java的開發(fā)...
    慕容小偉閱讀 1,788評論 0 10
  • 一:java概述:1催烘,JDK:Java Development Kit沥阱,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,649評論 0 11
  • 我的伴侶都不是用條件清單找來的,房子舰始、車子崇棠、錢、名與利.......有無我都隨意丸卷,一切只要我歡喜枕稀,直至今日,放任...
    愛芮閱讀 194評論 0 1
  • 其中讓我印象最深刻的情節(jié)是小蘇憤恨的說自己的表現(xiàn)較好谜嫉,但是還是在評比中被家庭成分絆住了腳萎坷,這從側(cè)面體現(xiàn)了這個時期政...
    終為魚閱讀 147評論 0 0