- 什麼是反射?
反射是java的基本特徵之一,允許運行中的java程序獲取自身信息,並且可以操作類或對象的內部屬性。
- 什麼是 java 序列化?什麼情況下需要序列化?
(1)簡單來說 序列化就是把Java對象儲存在某一地方(硬盤、網絡),也就是 將對象的內容進行流化。 (2)方便於傳輸、存儲(內存中的對象狀態保存到一個文件中或者數據庫中;套 接字在網絡上傳送對象;RMI)。
- 動態代理是什麼?有哪些應用?
(1)當想要給實現了某個接口的類中的方法,加一些額外的處理。比如說加日誌,加事務等。 可以給這個類創建一個代理,故名思議就是創建一個新的類,這個類不僅包含原來類方法的功 能,而且還在原來的基礎上添加了額外處理的新類。這個代理類並不是定義好的,是動態生成 的。具有解耦意義,靈活,擴展性強。 (2)動態代理的應用:Spring的AOP,加事務,加權限,加日誌。
- 怎麼實現動態代理?
(1)首先必須定義一個接口,還要有一個InvocationHandler(將實現接口的類的對象傳遞給它) 處理類。再有一個工具類Proxy(習慣性將其稱爲代理類,因爲調用他的newInstance()可以產生 代理對象,其實他只是一個產生代理對象的工具類)。利用到InvocationHandler,拼接代理類源 碼,將其編譯生成代理類的二進制碼,利用加載器加載,並將其實例化產生代理對象,最後返回。
四、反射面試題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.