更新時間:2020-10-21 17:18:29 來源:動力節(jié)點 瀏覽1619次
也許程序員們聽過這么一句話,就是沒有反射也就沒有框架,現(xiàn)有的框架都是以反射為基礎(chǔ),在實際項目的開發(fā)中,框架和類都是不可缺少的,反射是將框架和類結(jié)合在一起的粘合劑,所以想學(xué)好編程,學(xué)好反射機制是十分重要的。這篇文章來介紹java反射機制的相關(guān)基礎(chǔ)知識,java零基礎(chǔ)的新手朋友們可以來來學(xué)習(xí)下面的內(nèi)容。
什么是java反射機制?我們又為什么要學(xué)它?當(dāng)程序運行時,允許改變程序結(jié)構(gòu)或變量類型,這種語言稱為動態(tài)語言。我們認為java并不是動態(tài)語言,但是它卻有一個非常突出的動態(tài)相關(guān)機制,就是反射機制。
想要理解java反射機制的含義,應(yīng)該再了解兩個概念,編譯期和運行期,編譯期就是編譯器幫你把源代碼翻譯成機器能識別的代碼,比如編譯器把java代碼編譯成jvm識別的字節(jié)碼文件,而運行期指的是將可執(zhí)行文件交給操作系統(tǒng)去執(zhí)行,java反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意方法和屬性;這種動態(tài)獲取信息以及動態(tài)調(diào)用對象方法的功能稱為java語言的反射機制。簡單說,反射機制值得是程序在運行時能夠獲取自身的信息。在java中,只要給定類的名字,那么就可以通過反射機制來獲得類的所有信息。
java反射機制提供了如下的功能:在運行時能夠判斷任意一個對象所屬的類;在運行時構(gòu)造任意一個類的對象;在運行時判斷任意一個類所具有的成員變量和方法;在運行時調(diào)用任一對象的方法;在運行時創(chuàng)建新類對象。
需要知道的是,反射也有缺點。反射機制的功能非常強大,但不能濫用。一是因為性能問題,Java反射機制中包含了一些動態(tài)類型,所以Java虛擬機不能夠?qū)@些動態(tài)代碼進行優(yōu)化。因此,反射操作的效率要比正常操作效率低很多。我們應(yīng)該避免在對性能要求很高的程序或經(jīng)常被執(zhí)行的代碼中使用反射。二是安全限制,使用反射通常需要程序的運行沒有安全方面的限制,如果一個程序?qū)Π踩蕴岢鲆螅瑒t最好不要使用反射。
Java反射機制為程序很大程度上的提高了靈活性和擴展性,可以節(jié)省很多資源,反射機制是java這種動態(tài)語言一個關(guān)鍵,所以零基礎(chǔ)的朋友們在初始學(xué)習(xí)的時候,對java反射機制有通透的理解的話,在java視頻教程中學(xué)習(xí)關(guān)于反射的內(nèi)容,肯定是會有所幫助的。
初級 202925
初級 203221
初級 202629
初級 203743