欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java經(jīng)典面試題匯總:異常

 更新時間:2021年07月21日 09:28:37   作者:讓程序飛  
本篇總結(jié)的是Java異常相關(guān)的面試題,后續(xù)會持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實習(xí)生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯誤還望大家多多包涵,不吝賜教,謝謝

1. Java的異常機制

Throwable類是Java異常類型的頂層父類,一個對象只有是 Throwable 類的(直接或者間接)實例,他才是一個異常對象,才能被異常處理機制識別。JDK中內(nèi)建了一些常用的異常類,我們也可以自定義異常。

Throwable又派生出Error類和Exception類。

錯誤:Error類以及他的子類的實例,代表了JVM本身的錯誤。錯誤不能被程序員通過代碼處理,Error很少出現(xiàn)。因此,程序員應(yīng)該關(guān)注Exception為父類的分支下的各種異常類。

異常:Exception以及他的子類,代表程序運行時發(fā)送的各種不期望發(fā)生的事件??梢员籎ava異常處理機制使用,是異常處理的核心。

2. Java如何自定義異常?

自定義異常類只需從Exception類或者它的子類派生一個子類即可。自定義異常類如果繼承Exception類,則為受檢查異常,必須對其進行處理;如果不想處理,可以讓自定義異常類繼承運行時異常RuntimeException類。

public class BizException extends Exception {
    //默認構(gòu)造器
    public BizException() {
    }
    public BizException(String message) {
        super(message);
    }
}

3. throw 和 throws 的區(qū)別?

throw:是真實拋出一個異常。

throws:是聲明可能會拋出一個異常。

4. Java 中被檢查的異常和不受檢查的異常有什么區(qū)別?

被檢查的異常應(yīng)該用 try-catch 塊代碼處理或用 throws 關(guān)鍵字拋出,不受檢查的異常在程序中不要求被處理或用 throws 拋出。

5. final、finally、finalize 有什么區(qū)別?

final:是修飾符,如果修飾類,此類不能被繼承;如果修飾方法和變量,則表示此方法和此變量不能在被改變,只能使用。

finally:是 try{} catch{} finally{} 最后一部分,表示不論發(fā)生任何情況都會執(zhí)行,finally 部分可以省略,但如果 finally 部分存在,則一定會執(zhí)行 finally 里面的代碼。

finalize: 是 Object 類的一個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的此方法

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

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

7. try-catch-finally 中,如果 catch 中 return 了,finally 還會執(zhí)行嗎?

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

8. Java 中什么時候使用斷言?

斷言在開發(fā)中是一種常用的調(diào)試方式,很多開發(fā)語言中都支持這種機制。一般來說,斷言用于保證程序最基本、關(guān)鍵的正確性,斷言檢查通常在開發(fā)和測試時開啟,為了保證程序的執(zhí)行效率,在軟件發(fā)布后斷言檢查通常是關(guān)閉的,斷言是一個包含布爾表達式的語句,在執(zhí)行這個語句時假定該表達式為 true,如果表達式的值為 false 則系統(tǒng)會報告一個 AssertionError。

9. 運行時異常與一般異常有何異同?

異常表示程序運行過程中可能出現(xiàn)的非正常狀態(tài),運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發(fā)生的非運行時異常,但是并不要求必須聲明拋出未被捕獲的運行時異常。

10. 你平時在項目中是如何對異常進行處理的?

(1)盡量避免出現(xiàn)runtimeException 。比如對于可能出現(xiàn)空指針的代碼。帶使用對象之前一定要推斷一下該對象是否為空。必要的時候?qū)untimeException也進行try catch處理。

(2)進行try catch處理的時候要在catch代碼塊中對異常信息進行記錄,通過調(diào)用異常類的相關(guān)方法獲取到異常的相關(guān)信息,返回到web端,給到給用戶良好的用戶體驗。

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

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

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

最新評論