二哥,你好,找工作找了仨月,還沒有找到,很焦慮,我該怎麼辦呢?你那有沒有 Java 方面的面試題可以分享一波啊?
以上是讀者田田給我發的私信,看完後于我心有戚戚焉啊,最近境況确實不容樂觀,并非是個人的原因造成的。那,既然需要面試題,二哥就義不容辭,必須得準備一波。
這次我花了一周的時間,準備了 31 道 Java 核心面試題,希望能夠幫助到田田,以及其他和田田類似情況的讀者朋友。
(後續我打算再花一周時間,更新第二波,同樣有 31 道,敬請期待)
01、請說出 Java 14 版本中更新的重要功能
Java 14 釋出于 2020 年 3 月 17 日,更新的重要功能有:
switch 表達式
instanceof 增強表達式,預覽功能
文本塊,第二次預覽
Records,預覽功能
剛好我之前寫過一篇文章,關于 Java 14 的開箱體驗,很香,讀者朋友需要的話,可以點下面的連結看一看。
Java 14 開箱,它真香香香香
02、請說出 Java 13 版本中更新的重要功能
Java 13 釋出于 2019 年 9 月 17 日,更新的重要功能有:
文本塊,預覽功能
switch 表達式,預覽功能
Java Socket 重新實作
FileSystems.newFileSystem() 方法
支援 Unicode 12.1
可伸縮、低延遲的垃圾收集器改進,用于傳回未使用的記憶體
03、請說出 Java 12 版本中更新的重要功能
Java 12 釋出于 2019 年 3 月 19 日,更新的重要功能有:
JVM 更新
File.mismatch() 方法
緊湊型數字格式
String 類新增了一些方法,比如說 indent()
04、請說出 Java 11 版本中更新的重要功能
Java 11 是繼 Java 8 之後的第二個商用版本,如果你下載下傳的是 Oracle JDK,則需要進行付費;如果想繼續使用免費版本,需要下載下傳 Open JDK。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SN2UGNzQmY3cjNkRDN4IWY2QDZ0UGNxYTZ3MWY5QmY18CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
Oracle JDK 中會有一些 Open JDK 沒有的、商用閉源的功能。
Java 11 更新的重要功能有:
可以直接使用 java 指令運作 Java 程式,源代碼将會隐式編譯和運作。
String 類新增了一些方法,比如說 isBlank()、lines()、strip() 等等。
Files 類新增了兩個讀寫方法,readString() 和 writeString()。
可以在 Lambda 表達式中使用 var 作為變量類型。
05、請說出 Java 10 版本中更新的重要功能
Java 10 更新的重要功能有:
局部變量類型推斷,舉個例子,var list = new ArrayList<String>();,可以使用 var 來作為變量類型,Java 編譯器知道 list 的類型為字元串的 ArrayList。
增強 java.util.Locale。
提供了一組預設的根證書頒發機構(CA)。
06、請說出 Java 9 版本中更新的重要功能
Java 9 更新的重要功能有:
子產品系統
不可變的 List、Set、Map 的工廠方法
接口中可以有私有方法
垃圾收集器改進
07、請說出 Java 8 版本中更新的重要功能
Java 8 釋出于 2014 年 3 月份,可以說是 Java 6 之後最重要的版本更新,深受開發者的喜愛。
函數式程式設計和 Lambda 表達式
Stream 流
Java Date Time API
接口中可以使用預設方法和靜态方法
我強烈建議點開上面的連結閱讀以下,以正确了解這些概念。
08、請說出 Java 面向對象程式設計中的一些重要概念
抽象
封裝
多态
繼承
09、Java 聲稱的平台獨立性指的是什麼?
常見的作業系統有 Windows、Linux、OS-X,那麼平台獨立性意味着我們可以在任何作業系統中運作相同源代碼的 Java 程式,比如說我們可以在 Windows 上編寫 Java 程式,然後在 Linux 上運作它。