JDK8,JDK11,JDK17,JDK21的主要更新特性

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新增特性
根据官方介绍,JDK17共有14个JEP:

306:Restore Always-Strict Floating-PointSemantics / 恢复始终严格的浮点语义
356:Enhanced Pseudo-Random Number Generators / 增强型伪随机数发生器
382:New macOS Rendering Pipeline / 新的 macOS 渲染管道
391:macOS/AArch64 Port / macOS/AArch64 平台支持
398:Deprecate the Applet API for Removal / 弃用即将删除的Applet API
403:Strongly Encapsulate JDK Internals / 强封装JDK的内部API
406:Pattern Matching for switch(Preview) / Switch模式匹配(预览)
407:Remove RMI Activation / 删除 RMI 激活机制
409:Sealed Classes / 密封类
410:Remove the Experimental AOT and JIT Compiler / 删除实验性 AOT 和 JIT 编译器
411:Deprecate the Security Manager For Removal / 弃用即将删除的安全管理器
412:Foreign Function & Memory API(Incubator) / 外部函数和内存 API(孵化器)
414:Vector API (Second Incubator) / 矢量 API(二次孵化)
415: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开发者来说是一次重要的里程碑事件

JDK8原文链接:https://zhuanlan.zhihu.com/p/439176814

JDK11原文链接:https://zhuanlan.zhihu.com/p/631874704                      
JDK21原文链接:https://blog.csdn.net/SweMike/article/details/137745306             
JDK17原文链接:https://blog.csdn.net/aitutou/article/details/124248255

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值