您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關java中反射面試題的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Java是一門面向對象編程語言,可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序。
1.什么是反射?
主要是指程序可以訪問、檢測和修改它本身狀態或行為的一種能力
在Java運行時環境中,對于任意一個類,能否知道這個類有哪些屬性和方法?對于任意一個對象,能否調用它的任意一個方法
Java反射機制主要提供了以下功能:
(1)在運行時判斷任意一個對象所屬的類。
(2)在運行時構造任意一個類的對象。
(3)在運行時判斷任意一個類所具有的成員變量和方法。
(4)在運行時調用任意一個對象的方法。
2.哪里用到反射機制?
JDBC中,利用反射動態加載了數據庫驅動程序。
Web服務器中利用反射調用了Sevlet的服務方法。
Eclispe等開發工具利用反射動態刨析對象的類型與結構,動態提示對象的屬性和方法。
很多框架都用到反射機制,注入屬性,調用方法,如Spring。
3.反射機制的優缺點
優點:可以動態執行,在運行期間根據業務功能動態執行方法、訪問屬性,最大限度發揮了java的靈活性。
缺點:對性能有影響,這類操作總是慢于直接執行java代碼。
4.怎么實現動態代理?
首先必須定義一個接口,還要有一個InvocationHandler(將實現接口的類的對象傳遞給它)處理類。再有一個工具類Proxy(習慣性將其稱為代理類,因為調用他的newInstance()可以產生代理對象,其實他只是一個產生代理對象的工具類)。利用到InvocationHandler,拼接代理類源碼,將其編譯生成代理類的二進制碼,利用加載器加載,并將其實例化產生代理對象,最后返回。
關于“java中反射面試題的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。