課程
/后端開(kāi)發(fā)
/Java
/反射——Java高級(jí)開(kāi)發(fā)必須懂的
經(jīng)??吹椒瓷溥@個(gè)詞,學(xué)習(xí)編程這幾個(gè)月還沒(méi)有碰到過(guò),不知道到底起什么作用?
2016-05-26
源自:反射——Java高級(jí)開(kāi)發(fā)必須懂的 1-1
正在回答
通常情況下,java程序能夠運(yùn)行,必須要讓java類被虛擬機(jī)加載,如果不被java虛擬機(jī)加載,程序不能運(yùn)行。運(yùn)行的所有的程序都是在編譯期的時(shí)候就已經(jīng)知道了你所需要的那個(gè)類的已經(jīng)被加載了。通過(guò)反射機(jī)制可以讓程序在編譯期間并不需要加載某個(gè)類,而是在程序運(yùn)行的時(shí)候才加載。例如有兩個(gè)程序員,一個(gè)程序員在寫(xiě)程序的時(shí)候,需要使用第二個(gè)程序員所寫(xiě)的類,但第二個(gè)程序員并沒(méi)完成他所寫(xiě)的類。如果不使用發(fā)射機(jī)制那么可以程序變不能運(yùn)行,但是
利用Java反射的機(jī)制,就可以讓第一個(gè)程序員在沒(méi)有得到第二個(gè)程序員所寫(xiě)的類的時(shí)候,來(lái)完成自身代碼的編譯。利用反射機(jī)制可以很靈活的對(duì)運(yùn)行時(shí)已經(jīng)加載到Java虛擬機(jī)當(dāng)中的類信息進(jìn)行檢測(cè)。當(dāng)然這種檢測(cè)在對(duì)運(yùn)行的性能上會(huì)有些減弱,所以什么時(shí)候使用反射,就要靠業(yè)務(wù)的需求、大小,以及經(jīng)驗(yàn)的積累來(lái)決定。
Uauslman 提問(wèn)者
增加程序的靈活性。很少情況下是非用反射不可的。大多數(shù)情況下反射是為了提高程序的靈活性。因此一般框架中使用較多。因?yàn)榭蚣芤m用更多的情況。對(duì)靈活性要求較高。
舉報(bào)
反射,Java高級(jí)開(kāi)發(fā)必須要懂的知識(shí)點(diǎn),學(xué)好Java高級(jí)課程的基礎(chǔ)
4 回答反射的作用
2 回答反射的作用
2 回答反射的用途
3 回答使用反射的好處
5 回答為什么用反射啊
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-05-26
通常情況下,java程序能夠運(yùn)行,必須要讓java類被虛擬機(jī)加載,如果不被java虛擬機(jī)加載,程序不能運(yùn)行。運(yùn)行的所有的程序都是在編譯期的時(shí)候就已經(jīng)知道了你所需要的那個(gè)類的已經(jīng)被加載了。通過(guò)反射機(jī)制可以讓程序在編譯期間并不需要加載某個(gè)類,而是在程序運(yùn)行的時(shí)候才加載。例如有兩個(gè)程序員,一個(gè)程序員在寫(xiě)程序的時(shí)候,需要使用第二個(gè)程序員所寫(xiě)的類,但第二個(gè)程序員并沒(méi)完成他所寫(xiě)的類。如果不使用發(fā)射機(jī)制那么可以程序變不能運(yùn)行,但是
利用Java反射的機(jī)制,就可以讓第一個(gè)程序員在沒(méi)有得到第二個(gè)程序員所寫(xiě)的類的時(shí)候,來(lái)完成自身代碼的編譯。利用反射機(jī)制可以很靈活的對(duì)運(yùn)行時(shí)已經(jīng)加載到Java虛擬機(jī)當(dāng)中的類信息進(jìn)行檢測(cè)。當(dāng)然這種檢測(cè)在對(duì)運(yùn)行的性能上會(huì)有些減弱,所以什么時(shí)候使用反射,就要靠業(yè)務(wù)的需求、大小,以及經(jīng)驗(yàn)的積累來(lái)決定。
2016-05-26
增加程序的靈活性。
很少情況下是非用反射不可的。大多數(shù)情況下反射是為了提高程序的靈活性。
因此一般框架中使用較多。因?yàn)榭蚣芤m用更多的情況。對(duì)靈活性要求較高。