一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

java語(yǔ)言

Java反射機制

時(shí)間:2025-02-10 22:38:45 java語(yǔ)言 我要投稿

Java反射機制

  導語(yǔ):最近研究java研究得很給力,主要以看博文為學(xué)習方式。以下是小編對java的反射機制所產(chǎn)生的一些感悟,希望各位同學(xué)看到失誤之處不吝指出!

  1.何謂反射機制

  根據網(wǎng)文,java中的反射機制可以如此定義:

  JAVA反射機制是在運行狀態(tài)中,對于任意一個(gè)類(lèi),都能夠知道這個(gè)類(lèi)的所有屬性和方法;對于任意一個(gè)對象,都能夠調用它的任意一個(gè)方法;這種動(dòng)態(tài)獲取的信息以及動(dòng)態(tài)調用對象的方法的功能稱(chēng)為java語(yǔ)言的反射機制。

  2.反射機制如何實(shí)現

  談到反射機制,最誘人的莫過(guò)于“動(dòng)態(tài)”二字了。接觸過(guò)C語(yǔ)言的童鞋們都知道,C語(yǔ)言中也有個(gè)和“動(dòng)態(tài)”搭上邊的函數:malloc()函數。其實(shí)這里的兩個(gè)動(dòng)態(tài)是一個(gè)意思,都指的是非編譯時(shí)處理,抑或運行時(shí)處理。這種機制,可以讓程序的彈性增加不少,因為借由此機制,客戶(hù)可以在程序運行時(shí)改變一些他關(guān)心的性質(zhì):分配內存(當然他可能 完全不知道這么做了),調用某個(gè)類(lèi)(當然他還是被蒙在鼓里)等。

  下面我們就聊聊java中動(dòng)態(tài)機制是如何實(shí)現的。

  上一篇文章中提到了java的類(lèi)的加載問(wèn)題,但沒(méi)有更深入地解釋其運行機制,在這里就先談?wù)勥@個(gè)問(wèn)題。

  首先不得不提到的是java.lang.Class這個(gè)類(lèi)。

  有這么一段話(huà):

  Java程序在運行時(shí),Java運行時(shí)系統一直對所有的對象進(jìn)行所謂的運行時(shí)類(lèi)型標識。這項信息紀錄了每個(gè)對象所屬的類(lèi)。虛擬機通常使用運行時(shí)類(lèi)型信息選準正確方法去執行,用來(lái)保存這些類(lèi)型信息的類(lèi)是Class類(lèi)。

  也就是說(shuō),ClassLoader找到了需要調用的類(lèi)時(shí)(java為了調控內存的調用消耗,類(lèi)的加載都在需要時(shí)再進(jìn)行,很摳但是很有效),就會(huì )加載它,然后根據.class文件內記載的類(lèi)信息來(lái)產(chǎn)生一個(gè)與該類(lèi)相聯(lián)系的獨一無(wú)二的Class對象。該Class對象記載了該類(lèi)的字段,方法等等信息。以后jvm要產(chǎn)生該類(lèi)的實(shí)例,就是根據內存中存在的該Class類(lèi)所記載的信息(Class對象應該和我所了解的其他類(lèi)一樣會(huì )在堆內存內產(chǎn)生、消亡)來(lái)進(jìn)行。

  而java中的Class類(lèi)對象是可以人工自然性的(也就是說(shuō)開(kāi)放的)得到的(雖然你無(wú)法像其他類(lèi)一樣運用構造器來(lái)得到它的實(shí)例,因為

  Class對象都是jvm產(chǎn)生的。不過(guò)話(huà)說(shuō)回來(lái),客戶(hù)產(chǎn)生的話(huà)也是無(wú)意義的),而且,更偉大的是,基于這個(gè)基礎,java實(shí)現了反射機制。


【Java反射機制】相關(guān)文章:

java中反射機制05-26

Java反射機制學(xué)習總結05-19

Java反射機制應用實(shí)踐05-31

關(guān)于Java 反射的簡(jiǎn)介05-12

java的緩存機制07-29

深入理解java的反射07-16

java使用反射技術(shù)示例06-18

java的緩存機制簡(jiǎn)介12-17

java ClassLoader機制講解07-31

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看