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