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

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

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

1. Java的異常機(jī)制

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

Throwable又派生出Error類和Exception類。

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

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

2. Java如何自定義異常?

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

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

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

throw:是真實(shí)拋出一個(gè)異常。

throws:是聲明可能會(huì)拋出一個(gè)異常。

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

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

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

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

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

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

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

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

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

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

8. Java 中什么時(shí)候使用斷言?

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

9. 運(yùn)行時(shí)異常與一般異常有何異同?

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

10. 你平時(shí)在項(xiàng)目中是如何對(duì)異常進(jìn)行處理的?

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

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

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

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

總結(jié)

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

相關(guān)文章

  • springboot2.0+elasticsearch5.5+rabbitmq搭建搜索服務(wù)的坑

    springboot2.0+elasticsearch5.5+rabbitmq搭建搜索服務(wù)的坑

    這篇文章主要介紹了springboot2.0+elasticsearch5.5+rabbitmq搭建搜索服務(wù)的坑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • SpringBoot集成WebSocket的兩種方式(JDK內(nèi)置版和Spring封裝版)

    SpringBoot集成WebSocket的兩種方式(JDK內(nèi)置版和Spring封裝版)

    這篇文章主要介紹了SpringBoot集成WebSocket的兩種方式,這兩種方式為JDK內(nèi)置版和Spring封裝版,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Java實(shí)現(xiàn)解壓zip壓縮包的兩種方法(支持多層級(jí))

    Java實(shí)現(xiàn)解壓zip壓縮包的兩種方法(支持多層級(jí))

    壓縮文件在生活中經(jīng)常能用到,在Java中提供了壓縮和解壓縮文件的功能,本文主要介紹了Java實(shí)現(xiàn)解壓zip壓縮包的兩種方法(支持多層級(jí)),感興趣的可以了解一下
    2024-03-03
  • MyBatis寫入Json字段以及Json字段轉(zhuǎn)對(duì)象示例詳解

    MyBatis寫入Json字段以及Json字段轉(zhuǎn)對(duì)象示例詳解

    這篇文章主要給大家介紹了關(guān)于MyBatis寫入Json字段以及Json字段轉(zhuǎn)對(duì)象的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • SpringBoot如何根據(jù)目錄路徑生成接口的url路徑

    SpringBoot如何根據(jù)目錄路徑生成接口的url路徑

    這篇文章主要介紹了SpringBoot如何根據(jù)目錄路徑生成接口的url路徑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringCloud Config配置中心原理以及環(huán)境切換方式

    SpringCloud Config配置中心原理以及環(huán)境切換方式

    這篇文章主要介紹了SpringCloud Config配置中心原理以及環(huán)境切換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java synchronized加載加鎖-線程可重入詳解及實(shí)例代碼

    java synchronized加載加鎖-線程可重入詳解及實(shí)例代碼

    這篇文章主要介紹了java synchronized加載加鎖-線程可重入詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Spring Boot2.0實(shí)現(xiàn)靜態(tài)資源版本控制詳解

    Spring Boot2.0實(shí)現(xiàn)靜態(tài)資源版本控制詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot2.0實(shí)現(xiàn)靜態(tài)資源版本控制的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Java經(jīng)典面試題匯總:Spring MVC

    Java經(jīng)典面試題匯總:Spring MVC

    本篇總結(jié)的是Spring MVC框架相關(guān)的面試題,后續(xù)會(huì)持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實(shí)習(xí)生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯(cuò)誤還望大家多多包涵,不吝賜教,謝謝
    2021-07-07
  • Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解

    Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解

    本文主要介紹了Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06

最新評(píng)論