当前位置: 首页 > news >正文

面试之 Java 新特性 一览表

面试不仅是对人员基本信息的考核,更是对基础技能的现场考核,知识体系的建立,需要应试者好好梳理和掌握。这里我整理下java8到java24的新特性。

目录

Java 8(2014 年 3 月)

Java 9(2017 年 9 月)

Java 10(2018 年 3 月)

Java 11(2018 年 9 月,LTS)

Java 12(2019 年 3 月)

Java 13(2019 年 9 月)

Java 14(2020 年 3 月)

Java 15(2020 年 9 月)

Java 16(2021 年 3 月)

Java 17(2021 年 9 月,LTS)

Java 18(2022 年 3 月)

Java 19(2022 年 9 月)

Java 20(2023 年 3 月)

Java 21(2023 年 9 月,LTS)

Java 22(2024 年 3 月)

Java 23(2024 年 9 月)

Java 24(2025 年 3 月)


Java 8(2014 年 3 月)

  • 语言特性

    • 引入 Lambda 表达式与函数式接口,简化代码。

    • 方法引用,通过 Class::method 引用已有方法。

    • 接口默认方法和静态方法,增强接口的灵活性。

    • 重复注解和类型注解,支持注解的多样化使用。

  • 核心库

    • Stream API,提供声明式、链式的集合操作。

    • Optional 类,优雅地处理“可能为空”的值。

    • 全新的日期时间 API(如 LocalDateLocalTime 等)。

    • 并发增强,如 CompletableFuture

  • JVM 与性能优化

    • 移除永久代,引入元空间。

    • 垃圾回收优化,引入 G1 垃圾收集器。

    • HashMap 性能改进,引入红黑树。

  • 工具与其他

    • Nashorn JavaScript 引擎(后被移除)。

    • 增强的注解处理和反射。

Java 9(2017 年 9 月)

  • 语言和语法增强

    • 模块化系统(Project Jigsaw),引入模块描述符 module-info.java

    • 接口私有方法,增强接口内部实现的封装性。

    • try-with-resources 改进,支持直接使用已声明的资源变量。

  • 核心库增强

    • 集合工厂方法,如 List.of()Map.of()

    • Stream API 改进,新增 takeWhiledropWhile 等方法。

    • 进程 API,通过 ProcessHandle 提供更丰富的进程管理功能。

    • 响应式流(Reactive Streams),引入 Flow API。

    • HTTP/2 客户端(孵化)。

  • JVM 和性能

    • G1 成为默认 GC。

    • 字符串存储优化(Compact Strings)。

    • AOT 编译(实验)。

    • VarHandle 和内存栅栏。

    • 多版本 JAR 文件支持。

  • 工具与其他

    • JShell,交互式 REPL 工具。

    • jlink,用于创建自定义运行时镜像。

Java 10(2018 年 3 月)

  • 语言特性

    • 局部变量类型推断(var),简化局部变量声明。

  • 核心库增强

    • 不可变集合拷贝,如 List.copyOf()

    • Optional 增强,新增 orElseThrow() 等方法。

  • 性能和 JVM 改进

    • G1 并行 Full GC。

    • 应用类数据共享(AppCDS)。

    • 线程局部握手,优化 JVM 内部机制。

    • 备用内存设备上的堆支持。

  • 工具和平台

    • 实验性 Java JIT 编译器 - Graal。

    • 根证书开源。

Java 11(2018 年 9 月,LTS)

  • 语言特性

    • Lambda 参数的局部变量语法支持。

    • 直接启动单文件程序,简化脚本化使用。

  • 核心库增强

    • 标准化 HTTP 客户端,支持 HTTP/1.1 和 HTTP/2。

    • 字符串 API 增强,如 isBlank()strip()repeat() 等。

    • 文件方法和集合增强,如 Files.readString()

  • 性能与内存

    • ZGC(可伸缩低延迟 GC)和 Epsilon GC(实验性)。

    • 低开销 Heap Profiling。

    • Flight Recorder 开源。

    • TLS 1.3 支持。

  • 工具与其他

    • 移除和弃用部分特性(如 Java EE 模块、Nashorn 等)。

    • Java 命令新选项。

Java 12(2019 年 3 月)

  • 语言特性(预览)

    • Switch 表达式(预览),支持箭头语法和 yield

    • Instanceof 模式匹配(预览),简化类型检查和转换。

  • 核心库增强

    • String 新方法,如 indent()transform()

    • Files.mismatch 方法,比较文件内容。

    • NumberFormat 压缩数字。

    • Collector.Teeing,支持流的拆分和合并。

  • JVM 与垃圾回收

    • Shenandoah GC(实验性)。

    • G1 优化,如可中止的混合收集。

  • 工具和其他

    • Microbenchmark Harness(试验)。

    • JVM 常量 API。

Java 13(2019 年 9 月)

  • 语言特性(预览)

    • 文本块(Text Blocks,预览),简化多行字符串书写。

    • Switch 表达式第二次预览,引入 yield 关键字。

  • 核心库与其他

    • ZGC 改进,支持堆内存归还。

    • Socket API 重构,提升并发性能。

    • 动态 CDS 归档,简化类数据共享。

Java 14(2020 年 3 月)

  • JVM 改进

    • 空指针异常详细提示。

  • 语言特性

    • Switch 表达式正式推出。

    • Records(记录类,预览),简化数据载体类的定义。

    • 文本块第二次预览。

    • instanceof 模式匹配第二次预览。

  • 核心库和工具

    • 移除过时的 CMS GC。

    • ZGC 扩展到 macOS/Windows。

    • jpackage 工具(孵化),用于打包原生安装包。

Java 15(2020 年 9 月)

  • 核心语言特性

    • 文本块正式发布。

    • 密封类(预览),限制类的继承。

    • 隐藏类(Hidden Classes),用于动态生成类。

  • 核心库与安全

    • CharSequence.isEmpty() 方法。

    • TreeMap 增强,支持 putIfAbsent 等方法。

    • 新的数字签名算法 EdDSA。

  • JVM 和性能

    • ZGC 转正,支持多平台。

    • 弃用 Nashorn JavaScript 引擎。

Java 16(2021 年 3 月)

  • 语言特性

    • Records(记录类)正式发布。

    • 模式匹配的 instanceof 正式发布。

    • 密封类第二次预览。

  • 核心库增强

    • Vector API(孵化),支持 SIMD 指令。

    • Foreign Memory Access API(孵化),安全访问堆外内存。

    • JDK 内部 API 强封装。

  • 工具与 JVM

    • jpackage 工具正式发布。

    • 迁移至 Git/GitHub。

    • Alpine/Linux AArch64 移植。

Java 17(2021 年 9 月,LTS)

  • 语言特性

    • 密封类正式发布。

    • Switch 模式匹配(预览)。

  • 核心库

    • 增强的伪随机数生成器。

    • 跨平台渲染管线(macOS Metal)。

    • 弃用安全管理器。

    • 移除 RMI 激活机制。

  • 性能与内部

    • 永久性强封装 JDK 内部。

    • 移除实验性 AOT/JIT 编译器。

Java 18(2022 年 3 月)

  • 平台与性能

    • 默认字符集 UTF-8。

    • 简单的 Web 服务器。

    • 核心类重构(MethodHandle 实现)。

  • 新特性和 API

    • 代码段(Snippet)标签 for JavaDoc。

    • Vector API 第三次孵化。

    • 互联网地址解析 SPI。

    • 外部函数 & 内存 API 第二次孵化。

    • Switch 模式匹配第二次预览。

    • 弃用终结器 Finalization。

  • 安全与密码

    • 默认禁止弱算法。

Java 19(2022 年 9 月)

  • 并发与虚拟线程

    • 虚拟线程(预览)。

    • 结构化并发(孵化)。

  • 语言和模式匹配

    • 记录模式(预览)。

    • Switch 模式匹配第三次预览。

  • 外部接口和内存

    • 外部函数与内存 API(预览)。

  • 其他改进

    • 虚拟线程 Pinning 问题优化。

    • Linux/RISC-V 移植。

Java 20(2023 年 3 月)

  • 项目 Loom 持续改进

    • 虚拟线程第二次预览。

    • 结构化并发第二次孵化。

    • 作用域值(孵化)。

  • 模式匹配和类型系统

    • 记录模式第二次预览。

    • Switch 模式匹配第四次预览。

    • 泛型实例推断改进(预览)。

  • 外部接口

    • 外部函数 & 内存 API 第二次预览。

Java 21(2023 年 9 月,LTS)

  • 语言特性

    • 字符串模板(预览)。

    • 记录模式 & 模式匹配 for switch(正式)。

    • 未命名模式和变量(正式)。

    • 未命名类和实例 main 方法(预览)。

  • 并发和虚拟线程

    • 虚拟线程正式发布。

    • Sequenced Collections(序列集合)。

  • JVM 和性能

    • 分代 ZGC(实验)。

    • 禁用安全管理器。

    • 虚拟线程同步非阻塞平台线程。

    • 类加载和链接缓存(预览)。

    • 类文件 API 正式发布。

Java 22(2024 年 3 月)

  • 语言与语法

    • 未命名模式和变量转正。

    • 外部函数和内存 API 正式发布。

    • 多文件源代码程序启动。

    • 构造函数中允许语句在 super() 之前(预览)。

  • 核心库与安全

    • 类文件 API 第二次预览。

    • 流收集器 API(预览)。

    • Markdown 文档注释。

  • 其他变化

    • G1 区域固定。

    • Unsafe 内存访问方法弃用。

Java 23(2024 年 9 月)

  • 语言与语法

    • 原始类型模式(预览)。

    • 类文件 API 第二次预览。

    • Markdown JavaDoc 正式。

    • 向量 API 第八次孵化。

    • Stream 收集器第二次预览。

  • JVM 与安全

    • 禁用 SecurityManager 完成。

    • TLS/KEM 支持。

    • JVM 性能优化。

    • 模块导入声明(预览)。

Java 24(2025 年 3 月)

  • 安全与密码学

    • 密钥派生函数 API(预览)。

    • 完全禁用 Security Manager。

  • 性能与工具

    • 类加载与链接缓存。

    • 类文件 API 正式发布。

    • Stream::gather 正式发布。

  • 并发与内部改进

    • 作用域值第四次预览。

    • 虚拟线程同步无 Pinning。

    • jlink 无需 JMOD 文件。

  • 预览/孵化

    • 字符串模板第二次预览。

    • 隐式类导入(预览)。

相关文章:

  • 前端面经12 函数柯里化
  • 配置git从公网能访问-基于frp
  • 项目复习(2)
  • C语言:gcc 如何调用 Win32 打开文件对话框 ?
  • BERT 进阶:Albert 模型详解与实战
  • RFID系统:技术解析与应用全景
  • MATLAB学习笔记(七):MATLAB建模城市的雨季防洪排污的问题
  • Pandas 掌握Matplotlib基础绘图①
  • Redis——持久化
  • 单细胞转录组(1)
  • 嵌入式培训之数据结构学习(五)栈与队列
  • 手撕I2C和SPI协议实现
  • 机器学习回归预测中预处理的特征工程
  • 数据结构与算法——双向链表
  • QT调用Halcon查询所有摄像头名称
  • 基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真
  • UE 材质基础 第一天
  • WPS JS宏实现去掉文档中的所有空行
  • 数组集合互转问题
  • 星火杯大模型应用创新赛学习笔记——datawhale
  • 玉林一河段出现十年最大洪水,一村民被冲走遇难
  • 中国纪检监察刊文:力戒形式主义官僚主义关键是要坚持实事求是
  • 新华时评:博物馆正以可亲可近替代“高冷范儿”
  • 中欧互动中的合作与分歧:务实需求将克服泛安全化的“政治钟摆”
  • 韧性十足的中国外贸企业:“不倒翁”被摁下去,还会再弹起来
  • “大型翻车现场”科技满满,黄骅打造现代化港口和沿海新城典范