中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Java最常見的模塊面試題有哪些

發布時間:2021-11-24 16:21:40 來源:億速云 閱讀:114 作者:iii 欄目:大數據

本篇內容主要講解“Java最常見的模塊面試題有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java最常見的模塊面試題有哪些”吧!

74. throw 和 throws 的區別?

throws是用來聲明一個方法可能拋出的所有異常信息,throws是將異常聲明但是不處理,而是將異常往上傳,誰調用我就交給誰處理。而throw則是指拋出的一個具體的異常類型。

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

  • final可以修飾類、變量、方法,修飾類表示該類不能被繼承、修飾方法表示該方法不能被重寫、修飾變量表示該變量是一個常量不能被重新賦值。

  • finally一般作用在try-catch代碼塊中,在處理異常的時候,通常我們將一定要執行的代碼方法finally代碼塊中,表示不管是否出現異常,該代碼塊都會執行,一般用來存放一些關閉資源的代碼。

  • finalize是一個方法,屬于Object類的一個方法,而Object類是所有類的父類,該方法一般由垃圾回收器來調用,當我們調用System的gc()方法的時候,由垃圾回收器調用finalize(),回收垃圾。 

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

答:catch 可以省略

原因:

更為嚴格的說法其實是:try只適合處理運行時異常,try+catch適合處理運行時異常+普通異常。也就是說,如果你只用try去處理普通異常卻不加以catch處理,編譯是通不過的,因為編譯器硬性規定,普通異常如果選擇捕獲,則必須用catch顯示聲明以便進一步處理。而運行時異常在編譯時沒有如此規定,所以catch可以省略,你加上catch編譯器也覺得無可厚非。

理論上,編譯器看任何代碼都不順眼,都覺得可能有潛在的問題,所以你即使對所有代碼加上try,代碼在運行期時也只不過是在正常運行的基礎上加一層皮。但是你一旦對一段代碼加上try,就等于顯示地承諾編譯器,對這段代碼可能拋出的異常進行捕獲而非向上拋出處理。如果是普通異常,編譯器要求必須用catch捕獲以便進一步處理;如果運行時異常,捕獲然后丟棄并且+finally掃尾處理,或者加上catch捕獲以便進一步處理。

至于加上finally,則是在不管有沒捕獲異常,都要進行的“掃尾”處理。

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

答:會執行,在 return 前執行。

代碼示例1:

/* * java面試題--如果catch里面有return語句,finally里面的代碼還會執行嗎? */public class FinallyDemo2 {    public static void main(String[] args) {        System.out.println(getInt());    }
   public static int getInt() {        int a = 10;        try {            System.out.println(a / 0);            a = 20;        } catch (ArithmeticException e) {            a = 30;            return a;            /*             * return a 在程序執行到這一步的時候,這里不是return a 而是 return 30;這個返回路徑就形成了             * 但是呢,它發現后面還有finally,所以繼續執行finally的內容,a=40             * 再次回到以前的路徑,繼續走return 30,形成返回路徑之后,這里的a就不是a變量了,而是常量30             */        } finally {            a = 40;        }
//      return a;    }}

執行結果:30

代碼示例2:

package com.java_02;
/* * java面試題--如果catch里面有return語句,finally里面的代碼還會執行嗎? */public class FinallyDemo2 {    public static void main(String[] args) {        System.out.println(getInt());    }
   public static int getInt() {        int a = 10;        try {            System.out.println(a / 0);            a = 20;        } catch (ArithmeticException e) {            a = 30;            return a;            /*             * return a 在程序執行到這一步的時候,這里不是return a 而是 return 30;這個返回路徑就形成了             * 但是呢,它發現后面還有finally,所以繼續執行finally的內容,a=40             * 再次回到以前的路徑,繼續走return 30,形成返回路徑之后,這里的a就不是a變量了,而是常量30             */        } finally {            a = 40;            return a; //如果這樣,就又重新形成了一條返回路徑,由于只能通過1個return返回,所以這里直接返回40        }
//      return a;    }}

執行結果:40

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

  • NullPointerException:當應用程序試圖訪問空對象時,則拋出該異常。

  • SQLException:提供關于數據庫訪問錯誤或其他錯誤信息的異常。

  • IndexOutOfBoundsException:指示某排序索引(例如對數組、字符串或向量的排序)超出范圍時拋出。 

  • NumberFormatException:當應用程序試圖將字符串轉換成一種數值類型,但該字符串不能轉換為適當格式時,拋出該異常。

  • FileNotFoundException:當試圖打開指定路徑名表示的文件失敗時,拋出此異常。

  • IOException:當發生某種I/O異常時,拋出此異常。此類是失敗或中斷的I/O操作生成的異常的通用類。

  • ClassCastException:當試圖將對象強制轉換為不是實例的子類時,拋出該異常。

  • ArrayStoreException:試圖將錯誤類型的對象存儲到一個對象數組時拋出的異常。

  • IllegalArgumentException:拋出的異常表明向方法傳遞了一個不合法或不正確的參數。

  • ArithmeticException:當出現異常的運算條件時,拋出此異常。例如,一個整數“除以零”時,拋出此類的一個實例。 

  • NegativeArraySizeException:如果應用程序試圖創建大小為負的數組,則拋出該異常。

  • NoSuchMethodException:無法找到某一特定方法時,拋出該異常。

  • SecurityException:由安全管理器拋出的異常,指示存在安全侵犯。

  • UnsupportedOperationException:當不支持請求的操作時,拋出該異常。

  • RuntimeExceptionRuntimeException:是那些可能在Java虛擬機正常運行期間拋出的異常的超類。

到此,相信大家對“Java最常見的模塊面試題有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

淮北市| 鹤峰县| 通许县| 靖州| 榆树市| 山阳县| 遂宁市| 木兰县| 札达县| 柳林县| 平顶山市| 阿克苏市| 连江县| 高青县| 商丘市| 高陵县| 志丹县| 兴海县| 云龙县| 中宁县| 治多县| 璧山县| 平武县| 图木舒克市| 崇礼县| 张家口市| 兰溪市| 阳高县| 女性| 广安市| 阜南县| 新晃| 北流市| 巨野县| 霍林郭勒市| 天镇县| 苍梧县| 峡江县| 临潭县| 通化县| 衡东县|