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

面试之 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 文件。

  • 预览/孵化

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

    • 隐式类导入(预览)。

http://www.xdnf.cn/news/6953.html

相关文章:

  • 电池的充放电电流中C的含义
  • Windows系统信息收集指南
  • 多线程(4)——线程安全,锁
  • [Windows] 系统综合优化工具 RyTuneX 1.3.1
  • 安全性(二):数字签名
  • MoveIt Setup Assistant 在导入urdf文件的时候报错
  • 中国电力行业CCUS多目标优化模型分析
  • 数据结构与算法-线性表-循环链表(Circular Linked List)
  • 1.Hello Python!
  • Git 项目切换到新的远程仓库地址
  • STM32外设DA实战-DAC + DMA 输出正弦波
  • 文字溢出省略号显示
  • 一、电机篇
  • 降维,流行学习,度量学习
  • Redis的发布订阅模型是什么,有哪些缺点?
  • Doris bitmap原理
  • 阿里通义千问 Qwen3 系列模型正式发布,该模型有哪些技术亮点?
  • pytorch小记(二十一):PyTorch 中的 torch.randn 全面指南
  • WebAuthn开发常见问题及解决方案汇总:多语言支持、依赖管理与安全验证实践
  • Android同屏采集并推送RTMP和启动轻量级RTSP服务技术实践
  • QT之LayOut布局
  • SVGPlay:一次 CodeBuddy 主动构建的动画工具之旅
  • GO语言学习(三)
  • 项目管理学习-CSPM-4考试总结
  • VC++6.0分步执行常见问题及解决方案
  • 阿里云国际站与国内站的核心布局与本土化服务的选择
  • Linux中的进程
  • 提示词工程框架:CoT、ToT、GoT、PoT( 链式提示)
  • MySQL 索引优化以及慢查询优化
  • Linux面试题集合(2)