大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

第一部分 Java基礎
第二部分 Java進階

Java異常處理面試題

1、final、finally、finalize 的區別?

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

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

● finalize:Object 類的一個方法,所以Java對象都有這個方法,當某Java對象沒有更多的引用指向的時候,會被垃圾回收器回收,該對象被回收之前,由垃圾回收器來負責調用此方法,通常在該方法中進行回收前的準備工作。該方法更像是一個對象生命周期的臨終方法,當該方法被系統調用則代表該對象即將“死亡”,但是需要注意的是,我們主動行為上去調用該方法并不會導致該對象“死亡”,這是一個被動的方法(其實就是回調方法),不需要我們調用。

2、Java中異常分為哪些種類?

按照異常需要處理的時機分為編譯時異常(也叫受控異常)也叫 CheckedException 和運行時異常(也叫非受控異常)也叫 UnCheckedException。Java認為Checked異常都是可以被處理的異常,所以Java程序必須顯式處理Checked異常。如果程序沒有處理Checked 異常,該程序在編譯時就會發生錯誤無法編譯。這體現了Java 的設計哲學:沒有完善錯誤處理的代碼根本沒有機會被執行。對Checked異常處理方法有兩種:

● 第一種:當前方法知道如何處理該異常,則用try...catch塊來處理該異常。

● 第二種:當前方法不知道如何處理,則在定義該方法時聲明拋出該異常。

運行時異常只有當代碼在運行時才發行的異常,編譯的時候不需要try…catch。Runtime如除數是0和數組下標越界等,其產生頻繁,處理麻煩,若顯示申明或者捕獲將會對程序的可讀性和運行效率影響很大。所以由系統自動檢測并將它們交給缺省的異常處理程序。當然如果你有處理要求也可以顯示捕獲它們。

3、error和exception的區別?

Error類和Exception類的父類都是Throwable類,他們的區別如下:

● Error類一般是指與虛擬機相關的問題,如系統崩潰,虛擬機錯誤,內存空間不足,方法調用棧溢出等。對于這類錯誤的導致的應用程序中斷,僅靠程序本身無法恢復和預防,遇到這樣的錯誤,建議讓程序終止。

● Exception類表示程序可以處理的異常,可以捕獲且可能恢復。遇到這類異常,應該盡可能處理異常,使程序恢復運行,而不應該隨意終止異常。

●Exception類又分為未檢查異常(UnCheckedException)和受檢查的異常(CheckedException)。運行時異常ArithmeticException,IllegalArgumentException編譯能通過,但是一運行就終止了,程序不會處理運行時異常,出現這類異常,程序會終止。而受檢查的異常,要么用 try…catch 捕獲,要么用throws字句聲明拋出,交給它的父類處理,否則編譯不會通過。

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

1. public int getNum() {
2.     try {
3.         int a = 1 / 0;
4.         return 1;
5.     } catch (Exception e) {
6.         return 2;
7.     } finally {
8.         return 3;
9.     }
10.}

代碼走到第3行的時候遇到了一個MathException,這時第4行的代碼就不會執行了,代碼直接跳轉到catch語句中,走到第 6 行的時候,異常機制有一個原則:如果在catch中遇到了return或者異常等能使該函數終止的話那么有finally就必須先執行完finally代碼塊里面的代碼然后再返回值。因此代碼又跳到第8行,可惜第8行是一個return語句,那么這個時候方法就結束了,因此第6行的返回結果就無法被真正返回。如果finally僅僅是處理了一個釋放資源的操作,那么該道題最終返回的結果就是2。因此上面返回值是3。

5、Java 異常處理機制的理解?

Java對異常進行了分類,不同類型的異常分別用不同的Java類表示,所有異常的根類為 java.lang.Throwable,Throwable下面又派生了兩個子類:Error和Exception。

Error表示應用程序本身無法克服和恢復的一種嚴重問題。

Exception表示程序還能夠克服和恢復的問題,其中又分為系統異常和普通異常。

系統異常是軟件本身缺陷所導致的問題,也就是軟件開發人員考慮不周所導致的問題,軟件使用者無法克服和恢復這種問題,但在這種問題下還可以讓軟件系統繼續運行或者讓軟件死掉,例如,數組下標越界(ArrayIndexOutOfBoundsException),空指針異常(NullPointerException)、類轉換異常(ClassCastException)。

普通異常是運行環境的變化或異常所導致的問題,是用戶能夠克服的問題,例如,網絡斷線,硬盤空間不夠,發生這樣的異常后,程序不應該死掉。

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

6、說出最常見的5個RuntimeException?

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

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

● java.lang.NumberFormatException 字符串轉換為數字異常;出現原因:字符型數據中包含非數字型字符。

● java.lang.IndexOutOfBoundsException 數組角標越界異常,常見于操作數組對象時發生。

● java.lang.IllegalArgumentException 方法傳遞參數錯誤。

● java.lang.ClassCastException 數據類型轉換異常。

● java.lang.NoClassDefFoundException 未找到類定義錯誤。

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

● java.lang.InstantiationException 實例化異常。

● java.lang.NoSuchMethodException 方法不存在異常。

7、throw 和 throws 的區別?

● throw:

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

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

● throws:

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

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

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

全部教程
主站蜘蛛池模板: 爱爱永久免费视频网站 | 国产一国产一级毛片视频在线 | 亚洲日本欧美产综合在线 | 伊人色播 | 一级成人黄色片 | 欧美影院一区二区 | 高清亚洲| 日韩每日更新 | xxx大片免费视频 | 亚洲不卡在线 | 日韩欧美综合在线 | 东北一级毛片 | 亚洲免费视频在线 | 国产欧美日韩中文久久 | 五月天婷婷在线免费观看 | 日日天天干 | 日本伊人网 | 四虎影院免费观看视频 | 老司机日日摸夜夜摸精品影院 | 蜜月aⅴ国产精品 | www.免费视频 | 九九精品热线免费观看6 | 亚洲精品va | 91视频看| 免费人成激情视频在线观看冫 | 日本免费一级视频 | 狠狠躁夜夜躁人人爽天天段 | 91精品久久久久含羞草 | 一级一级一级一级毛片 | 日本不卡三级 | 婷婷开心激情 | 日本一区二区三区四区在线观看 | 五月天中文字幕 | 午夜伦情电午夜伦情影院 | 热99精品视频 | 老司机免费福利视频无毒午夜 | 四虎4hu永久免费视频大全 | 久久―日本道色综合久久 | 欧美综合区 | 欧美国产伦久久久久 | 国产在线一区二区 |