1、什麼是反射?
反射主要是指程式可以存取、偵測、修改它本身狀態或行為的一種能力
Java反射:
在Java執行環境中,對於任意一個類,能否知道這個類別有哪些屬性和方法?對於任意一個對象,能否呼叫它的任意一個方法。
(相關影片教學推薦:java影片教學)
Java反射機制主要提供了以下功能:
在運行時判斷任意一個物件所屬的類別。
在運行時建構任意一個類別的物件。
在執行時判斷任意一個類別所具有的成員變數和方法。
在執行階段呼叫任意一個物件的方法。
2、什麼是 java 序列化?什麼情況下需要序列化?
簡單來說就是為了保存在記憶體中的各種物件的狀態(也就是實例變量,不是方法),並且可以把保存的物件狀態再讀出來。雖然你可以用你自己的各種各樣的方法來保存object states,但是Java給你一個應該比你自己好的保存物件狀態的機制,那就是序列化。
(相關教學推薦:java入門)
什麼情況下需要序列化:
當你想把的記憶體中的物件狀態儲存到一個檔案或資料庫中時候;
當你想用套接字在網路上傳送物件的時候;
-
#當你想透過RMI傳輸物件的時候;
3、動態代理程式是什麼?有哪些應用?
動態代理程式:
當想要給實作了某個介面的類別中的方法,加上一些額外的處理。比如說加日誌,加事務等。可以為這個類別建立一個代理,故名思議就是創建一個新的類,這個類別不僅包含原來類別方法的功能,而且還在原來的基礎上添加了額外處理的新類別。這個代理類別並不是定義好的,是動態產生的。具有解耦意義,靈活,擴展性強。
動態代理的應用:
Spring的AOP
加交易
加上權限
加上日誌
4、怎麼實作動態代理?
首先必須定義一個接口,還要有一個InvocationHandler(將實作介面的類別的物件傳遞給它)處理類別。再有一個工具類Proxy(習慣性稱之為代理類,因為呼叫他的newInstance()可以產生代理對象,其實他只是一個產生代理對象的工具類)。利用到InvocationHandler,拼接代理類別源碼,將其編譯產生代理類別的二進位碼,利用載入器加載,並將其實例化產生代理對象,最後返回。
面試題推薦:java面試題
#以上是2020全新Java面試題——反射的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載
最受歡迎的的開源編輯器