日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

反射、对象拷贝、异常常见问题总结

發布時間:2024/2/28 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 反射、对象拷贝、异常常见问题总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

反射、對象拷貝、異常常見問題總結


目錄

反射:
  • 什么是反射?
  • 什么是 java 序列化?什么情況下需要序列化?
  • 動態代理是什么?有哪些應用?
  • 怎么實現動態代理?
  • 對象拷貝
  • 為什么要使用克隆?
  • 如何實現對象克隆?
  • 深拷貝和淺拷貝的區別是什么?
  • 異常
  • throw 和 throws 的區別?
  • final、finally、finalize 有什么區別?
  • try-catch-finally 中哪個部分可以省略?
  • try-catch-finally 中,如果 catch 中 return 了,finally 還會執行么?
  • 常見的異常類有哪些?

  • 1. 什么是反射?

    反射是在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為 Java 語言的反射機制。


    2. 什么是 java 序列化?什么情況下需要序列化?

    Java 序列化是為了保存各種對象在內存中的狀態,并且可以把保存的對象狀態再讀取出來。

    以下情況?使用 Java 序列化:

    • 想把內存中的對象狀態保存到一個文件中或者數據庫中。
    • 想用套接字在網絡上傳送對象的時候
    • 想通過 RMI(遠程調用方法)傳輸對象的時候。

    3. 動態代理是什么?有哪些應用?

    動態代理是運行時動態生成代理類

    動態代理的應用有 spring aop,hibernate 數據查詢,測試框架的后端 mock、rpc、Java 注解對象獲取等。


    4. 怎么實現動態代理?

    JDK 原生動態代理和 cglib 動態代理。JDK 原生動態代理是基于接口實現的,而 cglib 是基于繼承當前類的子類實現的。


    5. 為什么要使用克隆?

    克隆的對象可能包含一些已修改過的屬性,而 new 出來的對象的屬性還是初始化時候的值,所以當需要一個新的對象來保存當前對象的“狀態”就靠克隆方法了。


    6. 如何實現對象克隆?

    • 實現 Cloneable 接口并重寫 Object 類中的 clone() 方法。
    • 實現 Serializable 接口,通過對象的序列化和反序列化實現克隆,可以實現真正的深度克隆。

    7. 深拷貝和淺拷貝的區別是什么?

    • 淺拷貝:當對象被復制時只復制它本身和其中包含的值類型的成員變量,而引用類型的成員對象并沒有復制
    • 深拷貝:除了對象本身被復制外,對象所包含的所有成員變量也將復制。

    8. throw 和 throws 的區別?

    • throw:是真實拋出一個異常。
    • throws:是聲明可能會拋出一個異常。

    9. final、finally、finalize 有什么區別?

    • final:是修飾符,如果修飾類,此類不能被繼承;如果修飾方法和變量,則表示此方法和此變量不能被改變,只能使用。
    • finally:是 try{} catch{} finally{} 最后一部分,表示不論發送任何情況都會執行,finally 部分可以省略,但如果 finally 部分存在,則一定會執行 finally 里面的代碼。
    • finalize:是 Object 類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法。

    10. try-catch-finally 中哪個部分可以省略?

    try-catch-finally 其中 catch 和 finally 都可以被省略,但是不能同時省略,也就是說 try 的時候,必須后面跟一個 catch 或者 finally。


    11. try-catch-finally 中,如果 catch 中 return 了,finally 還會執行么?

    finally 一定會執行,即使是 catch 中 return 了,catch 中的 return 會等 finally 中的代碼執行完之后,才會執行。


    12. 常見的異常類有哪些?

    • NullPointerException 空指針異常
    • CalssNotFoundException 指定類不存在
    • NumberFormatException 字符串轉換為數字異常
    • IndexOutOfBoundsException 數組下標越界異常
    • ClassCastException 數據類型轉換異常
    • FileNotFoundException 文件未找到異常
    • NoSuchMethodException 方法不存在異常
    • IOException IO 異常
    • SocketException Socket異常

    總結

    以上是生活随笔為你收集整理的反射、对象拷贝、异常常见问题总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。