二哥,你好,找工作找了仨月,还没有找到,很焦虑,我该怎么办呢?你那有没有 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。
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 上运行它。