一、Java大事记
二、Java版本
三、Java版本新特性
Java 7:
- 改进的 switch 语句,支持字符串、枚举类型和数值型数据;
- try-with-resources 语句,自动关闭资源;
- 泛型实例化类型推断;
- 数字字面量可以使用下划线来分隔数字;
- 新增了 Fork/Join 框架,用于并行计算;
- NIO 2.0,支持异步 I/O 操作和文件系统操作;
- 动态语言支持,包括 InvokeDynamic 指令和 JSR 292 等。
Java 8:
- Lambda 表达式,用于函数式编程;
- Stream API,用于处理集合和数组等数据流;
- 接口默认方法和静态方法;
- 新的日期时间 API,取代了旧的 Date 和 Calendar 类;
- Nashorn JavaScript 引擎,替代了 Rhino 引擎。
Java 9:
- 模块化系统,提高了代码可重用性和安全性;
- JShell,交互式命令行工具,用于快速测试和调试代码;
- 改进的 HTTP 客户端,支持 HTTP/2 和 WebSocket;
- 多版本兼容的 JAR 文件,使得在不同版本的 Java 中使用相同的 JAR 文件更加容易;
- 改进的 GC,包括 G1 垃圾回收器。
Java 10:
- 局部变量类型推断,可以使用 var 关键字代替具体类型;
- 改进的 ThreadLocalRandom 类,用于生成伪随机数;
- 废弃了一些不安全的加密算法;
- 安全地存储公私钥对,提高了安全性。
Java 11:
- HTTP/2 标准化,成为默认的 HTTP 客户端实现;
- 改进的字符串 API,包括 strip() 和 repeat() 等方法;
- 新增了本地变量语法,用于声明局部变量;
- 废弃了一些废弃的模块和类。
Java 12:
- 改进的 Switch 语句,支持 Lambda 表达式;
- 新增了一些 String 方法,包括 transform() 和 indent() 等;
- 新增了一个微型 GC,用于优化小堆内存分配的应用程序。
Java 13:
- ZGC 垃圾回收器,支持大内存、低延迟应用程序;
- 改进的 Switch 语句,支持 Yield 语句;
- 改进的文本块语法,用于多行文本字符串。
Java 14:
- 改进的 Switch 语句,支持 Pattern 匹配;
- 新增了 Records 类,用于定义不可变数据类;
- 改进的 NullPointerException 错误信息。
Java 15:
- 改进的 GC,包括 ZGC 和 Shenandoah;
- 新增了 Sealed 类,用于限制继承和实现;
- 新增了 Text Blocks,用于处理多行字符串。
Java 16:
- 改进的垃圾回收器,包括 ZGC 和 Shenandoah;
- 新增了 Records 的扩展,包括 sealed 和 non-sealed 标注;
- 新增了 Vector API,用于并行计算。
Java 17:
- 基于 OpenJDK 11 的长期支持(LTS)版本;
- 服务提供者接口(SPAPI),取代了旧的类路径扩展机制;
- 基于 CDS 归档的应用程序快照(Application Class-Data Sharing);
- 改进的 ZGC 和 Shenandoah 垃圾回收器,包括堆外内存分配和统一 MappedByteBuffer 等改进;
- 预计还会包括随机生成器增强、G1 GC 的垃圾回收暂停时间预测等其他改进。
- Sealed Classes(密封类)
sealed class 密封类允许描述哪个类或接口可以扩展或实现这个类或接口。简而言之,我们可以限制谁可以使用这个类或接口。假设我们有一个学生抽象类,如果我们将其设为一个密封类,并且只允许ScienceStudent和CommerceSudent扩展该类,那么只有这些类才能扩展该Student,而其他类如果试图扩展该类,则会出错。
public abstract sealed class Student permits ScienceStudent , CommerceStudent { ... }
这提供了一种比访问修饰符更具声明性的方法来限制超类的使用。
Java19:
- 虚拟线程
类似 Go 语言的协程。它是轻量级线程,可显著减少编写、维护和观察高吞吐量并发应用程序的工作量。其目标包括以简单的请求线程样式编写的服务器应用程序,使得能够接近最佳的硬件利用率,现有代码能够以最小的更改采用虚拟线程,并启用故障排除、调试和使用现有 JDK 工具分析虚拟线程。
========================================
如果文章对你有帮助,不要忘记加个关注、点个赞!!!必回关!!!