亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java異常處理最常見的面試題

發布時間:2020-06-08 16:56:01 來源:億速云 閱讀:262 作者:Leah 欄目:編程語言

這篇文章給大家分享的是有關Java異常處理最常見的面試題。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。  

Java異常處理最常見的面試題

 

1、Java中異常的分類
  

答案:按照異常需要處理的時機分為編譯時異常也叫 CheckedException 和運行時異常(也叫非強制性異常)也叫 RuntimeException。只有Java語言提供了Checked異常,Java認為Checked異常都是可以被處理的異常,所以Java程序必須顯式處理Checked異常。如果程序沒有處理Checked異常,該程序在編譯時就會發生錯誤無法編譯。這體現了Java的設計哲學:沒有完善錯誤處理的代碼根本沒有機會被執行。

 

對Checked異常處理方法有兩種:當前方法知道如何處理該異常,則用 try...catch 塊來處理該異常;當前方法不知道如何處理,則在定義該方法是聲明拋出該異常。運行時異常只有當代碼在運行時才發行的異常,編譯時不需要 try catch。Runtime 如除數是 0 和數組下標越界等,其產生頻繁,處理麻煩,若顯示申明或者捕獲將會對程序的可讀性和運行效率影響很大。所以由系統自動檢測并將它們交給缺省的異常處理程序。當然如果你有處理要求也可以顯示捕獲它們。
  

2、調用下面的方法,得到的返回值是什么?
  

答案:public int getNum(){
  

try {
  

int a = 1/0;
  

return 1;
  

} catch (Exception e) {
  

return 2;
  

}finally{
  

return 3; 9.
  

}
  

3、Java異常處理機制
  

答案:Java 對異常進行了分類,不同類型的異常分別用不同的 Java 類表示,所有異常的根類java.lang.Throwable,Throwable 下面又派生了兩個子類:Error 和 Exception,Error 表示應用程序本身無法克服和恢復的一種嚴重問題。Exception 表示程序還能夠克服和恢復的問題,其中又分為系統異常和普通異常,系統異常是軟件本身缺陷所導致的問題,也就是軟件開發人員考慮不周所導致的問題,軟件使用者無法克服和恢復這種問題,但在這種問題下還可以讓軟件系統繼續運行或者讓軟件死掉,例如,數組腳本越界,空指針異常、類轉換異常;普通異常是運行環境的變化或異常所導致的問題, 是用戶能夠克服的問題,例如,網絡斷線,硬盤空間不夠,發生這樣的異常后,程序不應該死掉。
  

Java 為系統異常和普通異常提供了不同的解決方案,編譯器強制普通異常必須 try..catch 處理或用 throws 聲明繼續拋給上層調用方法處理,所以普通異常也稱為 checked 異常,而系統異常可以處理也可以不處理,所以,編譯器不強制用 try..catch 處理或用 throws 聲明,所以系統異常也稱為 unchecked 異常。
  

4、請寫出你最常見的5個RuntimeException
  

答案:下面列舉幾個常見的 RuntimeException。

 

(1)Java.lang.NullPointerException 空指針異常;出現原因:調用了未經初始化的對象或者是不存在的對象。

 

(2)Java.lang.ClassNotFoundException 指定的類找不到;出現原因:類的名稱和路徑加載錯誤;通常都是程序試圖通過字符串來加載某個類時可能引發異常。
  

(3)Java.lang.NumberFormatException 字符串轉換為數字異常;出現原因:字符型數據中包含非數字型字符。
  (4)Java.lang.IndexOutOfBoundsException 數組角標越界異常,常見于操作數組對象時發生。
  

(5)Java.lang.IllegalArgumentException 方法傳遞參數錯誤。
  

(6)Java.lang.ClassCastException 數據類型轉換異常。
  

(7)Java.lang.NoClassDefFoundException 未找到類定義錯誤。
  

(8)SQLException SQL 異常,常見于操作數據庫時的 SQL 語句錯誤。
  

(9)Java.lang.InstantiationException 實例化異常。
  

(10)Java.lang.NoSuchMethodException 方法不存在異常。
  

5、throw和throws的區別
  

答案:

 

throw:
  

(1)throw 語句用在方法體內,表示拋出異常,由方法體內的語句處理。
  

(2)throw 是具體向外拋出異常的動作,所以它拋出的是一個異常實例,執行 throw 一定是拋出了某種異常。
  

throws:
 

(1)@throws 語句是用在方法聲明后面,表示如果拋出異常,由該方法的調用者來進行異常的處理。
 

(2)throws 主要是聲明這個方法會拋出某種類型的異常,讓它的使用者要知道需要捕獲的異常的類型。
  

(3)throws 表示出現異常的一種可能性,并不一定會發生這種異常。
  

6、final、finally、finalize的區別?
 

答案:

 

(1)final:用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,被其修飾的類不可繼承。
  

(2)finally:異常處理語句結構的一部分,表示總是執行。
  

(3)finalize:Object 類的一個方法,在垃圾回收器執行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。該方法更像是一個對象生命周期的臨終方法,當該方法被系統調用則代表該對象即將"死亡",但是需要注意的是,我們主動行為上去調用該方法并不會導致該對象"死亡",這是一個被動的方法(其實就是回調方法),不需要我們調用。

關于Java異常處理最常見的面試題就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南和县| 堆龙德庆县| 山西省| 庆阳市| 长白| 康乐县| 临西县| 茶陵县| 松原市| 区。| 聊城市| 屏东市| 包头市| 蓝田县| 乾安县| 南城县| 青铜峡市| 定州市| 乳山市| 岳池县| 通渭县| 宜川县| 黄陵县| 张家口市| 黔东| 石河子市| 溧阳市| 茶陵县| 农安县| 高邮市| 石家庄市| 阳原县| 常熟市| 岑巩县| 门源| 台东市| 兴化市| 万安县| 藁城市| 长子县| 富源县|