更新時(shí)間:2019-12-10 14:13:45 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2742次
在動(dòng)力節(jié)點(diǎn)這階段的學(xué)習(xí)中,讓我最深刻的知識(shí)點(diǎn)就是反射,以前我也找過(guò)一些資料自學(xué)過(guò),但是沒(méi)有老師講的深入,通過(guò)這次學(xué)習(xí),感覺(jué)了解的更透徹了。

一、先看一下反射的概念:
主要是指程序可以訪(fǎng)問(wèn),檢測(cè)和修改它本身狀態(tài)或行為的一種能力,并能根據(jù)自身行為的狀態(tài)和結(jié)果,調(diào)整或修改應(yīng)用所描述行為的狀態(tài)和相關(guān)的語(yǔ)義。
反射是Java中一種強(qiáng)大的工具,能夠使我們很方便的創(chuàng)建靈活的代碼,這些代碼可以再運(yùn)行時(shí)裝配,無(wú)需在組件之間進(jìn)行源代碼鏈接。但是反射使用不當(dāng)會(huì)成本很高!
二、反射機(jī)制的作用:
1、反編譯:.class-->.java
2、通過(guò)反射機(jī)制訪(fǎng)問(wèn)Java對(duì)象的屬性,方法,構(gòu)造方法等;這樣好像更容易理解一些,下邊我們具體看怎么實(shí)現(xiàn)這些功能。
三、在這里先看一下sun為我們提供了那些反射機(jī)制中的類(lèi):
java.lang.Class;
java.lang.reflect.Constructor; java.lang.reflect.Field;
java.lang.reflect.Method;
java.lang.reflect.Modifier;
很多反射中的方法,屬性等操作我們可以從這四個(gè)類(lèi)中查詢(xún)。還是那句話(huà)要學(xué)著不斷的查詢(xún)API,那才是我們最好的老師。

四、具體功能實(shí)現(xiàn):
1、反射機(jī)制獲取類(lèi)有三種方法[size=18.6667px]
2、[size=18.6667px],創(chuàng)建對(duì)象:獲取類(lèi)以后我們來(lái)創(chuàng)建它的對(duì)象,利用[size=18.6667px]new[size=18.6667px]Instance[size=18.6667px]:[size=18.6667px] 3,獲取屬性:分為所有的屬性和指定的屬性:
a、先看獲取所有的屬性的寫(xiě)法
b、獲取特定的屬性,對(duì)比著傳統(tǒng)的方法來(lái)學(xué)習(xí):
這樣我們就可以獲得類(lèi)的各種內(nèi)容,進(jìn)行了反編譯。對(duì)于Java這種先編譯再運(yùn)行的語(yǔ)言來(lái)說(shuō),反射機(jī)制可以使代碼更加靈活,更加容易實(shí)現(xiàn)面向?qū)ο蟆?/p>
這樣的好處是很容易的方便我們變換數(shù)據(jù)庫(kù),例如我們將系統(tǒng)的數(shù)據(jù)庫(kù)從SQL Server升級(jí)到Oracle,那么我們寫(xiě)兩份D層,在配置文件的內(nèi)容改一下,或者加條件選擇一下即可,帶來(lái)了很大的方便。
當(dāng)然了,Java中其實(shí)也是一樣,只不過(guò)這里的配置文件為.properties,稱(chēng)作屬性文件。通過(guò)反射讀取里邊的內(nèi)容。這樣代碼是固定的,但是配置文件的內(nèi)容我們可以改,這樣使我們的代碼靈活了很多!
通過(guò)在動(dòng)力節(jié)點(diǎn)Java面授學(xué)習(xí)的第二階段中,我覺(jué)得對(duì)于Java反射,雖然在運(yùn)用中它會(huì)使我們的軟件性能降低,復(fù)雜度增加,但如果我們可以靈活的運(yùn)用它,它能夠使我們的代碼更加靈活,總的來(lái)說(shuō)利還是大于弊。

以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“學(xué)習(xí)Java編程入門(mén)到精通”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
Java全套自學(xué)資料
Java自學(xué)視頻教程(免費(fèi)學(xué)習(xí)):http://www.soulsinkind.com/video.html
Java技術(shù)教程:http://www.soulsinkind.com/tutorial/
相關(guān)文章
零基礎(chǔ)怎么自學(xué)Java,完整版Java學(xué)習(xí)路線(xiàn)圖
你還在糾結(jié)學(xué)Java,是自學(xué)還是去培訓(xùn)班嗎
一個(gè)標(biāo)準(zhǔn)的Java程序員如何進(jìn)階?
Java學(xué)習(xí)路線(xiàn)清單,快速進(jìn)階Java
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)