先看再点赞,给自己一点思考的时间,微信搜索【沉默王二】关注这个靠才华苟且的程序员。
本文 GitHub github.com/itwanger 已收录,里面还有一线大厂整理的面试题,以及我的系列文章。
二哥,你好,找工作找了仨月,还没有找到,很焦虑,我该怎么办呢?你那有没有 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();,可以使用 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 上运行它。
10、什么是 JVM?JVM(Java Virtual Machine)俗称 Java 虚拟机。之所以称为虚拟机,是因为它实际上并不存在。它提供了一种运行环境,可供 Java 字节码在上面运行。
JVM 提供了以下操作:
加载字节码
验证字节码
执行字节码
提供运行时环境
JVM 定义了以下内容:
存储区
类文件格式
寄存器组
垃圾回收堆
致命错误报告等