java反射的作用知識(shí)點(diǎn)總結(jié)
Java的反射機(jī)制是Java特性之一,反射機(jī)制是構(gòu)建框架技術(shù)的基礎(chǔ)所在。靈活掌握J(rèn)ava反射機(jī)制,對(duì)大家以后學(xué)習(xí)框架技術(shù)有很大的幫助。
什么是Java的反射?
反射是Java的特征之一,是一種間接操作目標(biāo)對(duì)象的機(jī)制。
JAVA反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)實(shí)體類(lèi),都能夠知道這個(gè)類(lèi)的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意方法和屬性;這種動(dòng)態(tài)獲取信息以及動(dòng)態(tài)調(diào)用對(duì)象方法的功能稱(chēng)為java語(yǔ)言的反射機(jī)制。
Java反射有什么作用?
通過(guò)反射可以使程序代碼訪問(wèn)裝載到JVM 中的類(lèi)的內(nèi)部信息
- 獲取已裝載類(lèi)的成員變量信息
- 獲取已裝載類(lèi)的方法
- 獲取已裝載類(lèi)的構(gòu)造方法信息
反射的應(yīng)用場(chǎng)合:
在編譯時(shí)根本無(wú)法知道該對(duì)象或類(lèi)可能屬于哪些類(lèi),程序只依靠運(yùn)行時(shí)信息來(lái)發(fā)現(xiàn)該對(duì)象和類(lèi)的真實(shí)信息。
反射的缺點(diǎn)
性能問(wèn)題
使用反射基本上是一種解釋操作,用于字段和方法接入時(shí)要遠(yuǎn)慢于直接代碼。因此Java反射機(jī)制主要應(yīng)用在對(duì)靈活性和擴(kuò)展性要求很高的系統(tǒng)框架上,普通程序不建議使用。
使用反射會(huì)模糊程序內(nèi)部邏輯
程序人員希望在源代碼中看到程序的邏輯,反射等繞過(guò)了源代碼的技術(shù),因而會(huì)帶來(lái)維護(hù)問(wèn)題。反射代碼比相應(yīng)的直接代碼更復(fù)雜。
以上就是java反射的作用是什么?的詳細(xì)內(nèi)容,希望腳本之家整理的內(nèi)容能夠幫助到大家。
相關(guān)文章
SpringBoot?2.x整合Log4j2日志的詳細(xì)步驟
log4j2優(yōu)越的性能其原因在于log4j2使用了LMAX,一個(gè)無(wú)鎖的線(xiàn)程間通信庫(kù)代替了,logback和log4j之前的隊(duì)列,并發(fā)性能大大提升,下面這篇文章主要給大家介紹了關(guān)于SpringBoot?2.x整合Log4j2日志的相關(guān)資料,需要的朋友可以參考下2022-10-10spring?boot?executable?jar/war?原理解析
spring boot里其實(shí)不僅可以直接以 java -jar demo.jar的方式啟動(dòng),還可以把jar/war變?yōu)橐粋€(gè)可以執(zhí)行的腳本來(lái)啟動(dòng),比如./demo.jar,這篇文章主要介紹了spring?boot?executable?jar/war?原理,需要的朋友可以參考下2023-02-02關(guān)于request.getRequestDispatcher().forward()的妙用及DispatcherType
這篇文章主要介紹了關(guān)于request.getRequestDispatcher().forward()的妙用及DispatcherType對(duì)Filter配置的影響,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01java的poi技術(shù)讀取和導(dǎo)入Excel實(shí)例
本篇文章主要介紹了java的poi技術(shù)讀取和導(dǎo)入Excel實(shí)例,報(bào)表輸出是Java應(yīng)用開(kāi)發(fā)中經(jīng)常涉及的內(nèi)容,有需要的可以了解一下。2016-11-11RabbitMQ消息隊(duì)列中多路復(fù)用Channel信道詳解
這篇文章主要介紹了RabbitMQ消息隊(duì)列中多路復(fù)用Channel信道詳解,消息Message是指在應(yīng)用間傳送的數(shù)據(jù),消息可以非常簡(jiǎn)單,比如只包含文本字符串,也可以更復(fù)雜,可能包含嵌入對(duì)象,需要的朋友可以參考下2023-08-08