JDK 8、JDK 11、JDK 17 和 JDK 21 的部分特性

JDK8的主要更新特性

  • Lambda 表达式:也称闭包。Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)
  • 函数式接口:JDK8引入了函数式接口的概念,允许我们传递函数作为参数,并可以通过Lambda表达式来简洁地实现。
  • 方法引用:方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码
  • 默认方法:默认方法就是一个在接口里面有了一个实现的方法
  • Stream API:新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。
  • Optional 类:Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。
  • Date Time API:加强对日期与时间的处理。
  • Nashorn, JavaScript 引擎:Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用

JDK11新增特性

  • HTTP 客户端 API:Java 11引入了一组标准的HTTP客户端API,可以方便地创建和发送HTTP请求,并支持异步和流式处理。使用这个API可以替换HttpURLConnection和Apache HttpClient等传统的HTTP客户端工具。
  • var 关键字:var 是Java 10中引入的关键字,Java 11又扩展了它的使用范围。现在可以在Lambda表达式的参数列表中使用 var 来声明变量类型,并且可以在for循环中使用 var 来遍历数组或集合。
  • 集合 API 增强:Java 11中的集合API有一些新增的方法和功能,例如 List.of()、Set.of() 和 Map.of() 可以快速创建不可变的集合。另外,新增了 Collection.toArray(IntFunction generator) 方法,用于生成指定类型的数组。
  • ZGC 垃圾回收器:Java 11中引入了全新的ZGC垃圾回收器,它是一个低停顿的、可扩展的、并行的垃圾回收器,可以处理TB级别的堆内存。相比其他垃圾回收器,ZGC 能够更好地平衡吞吐量、延迟和内存占用。
  • Epsilon 垃圾回收器:Epsilon 是Java 11中引入的一种新的垃圾回收器,它不执行实际的垃圾回收操作,仅仅负责对内存进行分配和释放。因此,Epsilon 可以用于那些内存使用频繁,但是不需要垃圾回收的场景。
  • Unicode 10 支持:Java 11支持Unicode 10字符集,可以支持更多的字符和符号,包括 Emoji 和各种符号等。
  • 新版Javadoc:Java 11中改进了Javadoc工具,使其更加易读和易用。新版Javadoc增强了搜索和导航功能,并且支持HTML5和CSS3等最新的Web技术。
  • Flight Recorder API:Java 11中引入了Flight Recorder API,可以在运行时收集应用程序的性能数据和事件,并将其输出到文件。这个API基于Java Mission Control(JMC),可以帮助开发人员分析和调试Java应用程序。
  • 嵌套访问控制:Java 11中引入了嵌套访问控制,可以让内部类和外部类之间共享私有成员。如果一个类是另一个类的嵌套类,并且它们在同一个源代码文件中,那么它们之间可以互相访问私有成员。
  • 废弃的API:Java 11中废弃了一些API,主要是Java EE 和 CORBA 相关的API,包括 java.corba、java.transaction、javax.enterprise 和 javax.jms 等。

JDK17新增特性

  • Restore Always-Strict Floating-PointSemantics / 恢复始终严格的浮点语义
  • Enhanced Pseudo-Random Number Generators / 增强型伪随机数发生器
  • New macOS Rendering Pipeline / 新的 macOS 渲染管道
  • macOS/AArch64 Port / macOS/AArch64 平台支持
  • Deprecate the Applet API for Removal / 弃用即将删除的Applet API
  • Strongly Encapsulate JDK Internals / 强封装JDK的内部API
  • Pattern Matching for switch(Preview) / Switch模式匹配(预览)
  • Remove RMI Activation / 删除 RMI 激活机制
  • Sealed Classes / 密封类
  • Remove the Experimental AOT and JIT Compiler / 删除实验性 AOT 和 JIT 编译器
  • Deprecate the Security Manager For Removal / 弃用即将删除的安全管理器
  • Foreign Function & Memory API(Incubator) / 外部函数和内存 API(孵化器)
  • Vector API (Second Incubator) / 矢量 API(二次孵化)
  • Context-Specific Deserialization Filters / 特定于上下文的反序列化过滤器

JDK21的主要更新特性

  • ZGC和Shenandoah GC的改进 :这两种垃圾收集器在JDK21中得到了优化和改进,以提高性能和稳定性。
  • 新的日期和时间API :新的日期和时间API提供了更加灵活和可配置的方式来处理日期和时间。 它使开发者能够更容易地处理不同的时区和日历系统。
  • Unicode 14支持 :JDK21增加了对Unicode 14标准的支持,从而提高了对全球字符集的处理能力。
  • 国际化增强 :JDK21包含许多国际化增强功能,使应用程序能够更好地适应不同的地区和语言环境。
  • AWT和Swing更新 :用于构建图形用户界面(GUI)的AWT和Swing组件在JDK21中得到了更新和改进,以提高性能和兼容性。 综上所述,JDK21的发布对于Java开发者来说是一次重要的里程碑事件

版本对比表

特性JDK 8JDK 17JDK 21
函数式编程支持
并发性能一般提升极大优化
新语法特性基本支持增强全面优化
适用场景基础开发企业级应用高性能高并发场景
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值