JDK 5 ~ 17 新特性倾情整理!(持续补充)

为了大家对JDK有一个全面的了解,下面我为大家整理了JDK5~17的所有关键新特性!

JDK5新特性

1、自动装箱与拆箱
2、枚举
3、静态导入
4、可变参数(Varargs)
5、内省(introspector)
6、泛型(Generic)
7、For-Each循环

JDK6新特性

1、Desktop类和SystemTray类
2、使用JAXB2来实现对象与XML之间的映射
3、理解STAX
4、使用Compiler API
5、轻量级 Http Server API
6、插入式注解处理 API
7、使用Console开发控制台程序
8、对脚本语言的支持
9、Common Annotations
10、Java GUI界面的显示
11、嵌入式数据库Derby
12、Web服务元数据
13、Jtable的排序和过滤
14、更简单更强大的JAX-WS

JDK7新特性

1、switch中可以使用字符串了
2、泛型实例化类型自动推断
3、自定义自动关闭类
4、新增一些读取环境信息的工具方法
5、Boolean类型反转,空指针安全,参与位运算
6、两个char之间的equals
7、安全的加减乘除|sd
8、对Java集合( Collections)的增强支持
9、数值可加下划线
10、支持二进制数字
11、在try/catch异常扑捉中,一个catch可以写多个异常类型用|隔开;可以不必要写finally语句来关闭资源,只要你在try()的括号内部定义要使用的资源

JDK8新特性

1、接口的默认方法
2、Lambda表达式
3、函数式接口
4、方法与构造函数引用
5、扩展了集合类
6、新的Date API
7、Annotation多重注解
8、streams(流)
9、parallel streams(并行流)
10、Map数据结构改进

JDK9新特性

1、Jigsaw模块化项目
2、简化进程API
3、轻量级JSON API
4、钱和货币的API
5、改善锁竞争机制
6、代码分段缓存
7、智能java编译
8、http2.0客户端
9、kulla计划

JDK10新特性

1、局部变量的类型推断
2、GC改进和内存管理
3、线程本地握手
4、备用内存设备上的堆分配
5、其他Unicode语言 - 标记扩展
6、基于Java的实验性JIT编译器
7、开源根证书
8、根证书颁发认证(CA)
9、将JDK生态整合单个存储库
10、删除工具javah

JDK11新特性

1、基于嵌套的访问控制
2、动态类文件常量
3、改进 Aarch64 内联函数
4、Epsilon:No-Op 垃圾收集器
5、删除 Java EE 和 CORBA 模块
6、HTTP 客户端(标准)
7、Lambda 参数的本地变量语法
8、Curve25519 和 Curve448 密钥协议
9、Unicode 10
10、运行记录仪
11、ChaCha20 和 Poly1305 密码算法
12、启动单文件源代码程序
13、低开销堆分析
14、传输层安全性(TLS)1.3
15、ZGC:可扩展的低延迟垃圾收集器
16、弃用 Nashorn JavaScript 引擎
17、弃用 Pack200 工具和 API

JDK12新特性

1、Shenandoah GC 低暂停时间垃圾收集器
2、Microbenchmark Suite 微基准测试套件
3、Switch 表达式
4、JVM常量api
5、保留 32 位 ARM 实现和 64 位 aarch64 实现的同时,删除与 arm64 实现相关的所有源码
6、CDS默认类书籍恭喜归档文件
7、G1收集器的优化

jdk13新特性

1、switch优化更新
2、文本块升级
3、动态CDS档案
4、取消使用未使用的内存
5、重新实现旧版套接字API
6、FileSystems.newFileSystem新方法
7、nio新方法
8、核心库/ java.time
9、核心库/ java.util中:I18N
10、热点/ GC
11、安全库/ java.security
12、删除部分功能

jdk14新特性

1、Switch表达式(确定最终版)
2、文本块升级
3、instanceof的模式匹配(预览特性)
4、Record(预览特性)
5、NullPointerException提示优化
6、垃圾回收器(更新优化)
7、货币格式(优化)
8、NIO的Channel通道
9、删除部分功能(CMS垃圾收集器已被删除、删除了安全库java.security.acl)
10、弃用部分功能(弃用线程挂起、删除功能,弃用javax.crypto椭圆曲线功能)

jdk15新特性

1、EdDSA 数字签名算法
2、密封类(预览)
3、隐藏类
4、移除 Nashorn JavaScript 引擎
5、重新实现 Legacy DatagramSocket API
6、禁用偏向锁定
7、instanceof 模式匹配(第二次预览)
8、ZGC:一个可扩展的低延迟垃圾收集器
9、文本块
10、Shenandoah:低暂停时间垃圾收集器
11、移除 Solaris 和 SPARC 端口
12、外部存储器访问 API(第二次孵化版)
13、Records(第二次预览)
14、废弃 RMI 激活机制

jdk16新特性

1. 支持类型匹配的instanceof
2. record关键字
3.全并发的ZGC
4. 可弹性伸缩的元数据区
5. 支持Unix套接字
6. 新的打包工具jpackage
7. 针对Value-Based类的编译器warning提示
8. 对JDK内部方法提供强制的封装
9. 提供向量计算的API
10. 对原生代码的调用提供更方便的支持
11. 提供操作外部内存的能力
12. 提供限制可以继承此类的关键字sealed和permits

jdk17新特性

1、恢复始终严格模式(Always-Strict)的浮点语义
2、增强型伪随机数发生器
3、新增macOS渲染管道
4、支持将JDK移植到macOS或AArch64
5、弃用待移除的Applet API
6、强封装JDK内部API
7、switch模式匹配进入预览(Preview)阶段
8、移除RMI(远程方法调用)激活机制
9、密封类
10、移除实验性AOT和JIT编译器
11、弃用待移除的安全管理器(Security Manager)
12、外部函数和内存API(孵化器)孵化阶段
13、Vector API(第二孵化器)第二孵化阶段
14、上下文特定的反序列化过滤器

怎么样,这些新特性都知道多少?都用过多少?多学习这些新特性,对写代码的效率、逼格、技能成长、就业还是会很有帮助的。
观察各版本新特性变更重点,可以发现,最新版本特性主要围绕简化代码、内存释放等方向,以及一些核心库补充、旧代码重构等。
这其实我们开发项目时需要注意的地方。

部分文章内容引用来自下列地址
https://blog.csdn.net/youanyyou/article/details/79766328
https://zhuanlan.zhihu.com/p/86772420
https://baijiahao.baidu.com/s?id=1660652249159887290&wfr=spider&for=pc
https://my.oschina.net/mdxlcj/blog/3197478
https://blog.csdn.net/qq_44866828/article/details/125394663

csdn转载必须填写原地址,由于本文包含多个引用,不能完成内容上传。所以厚颜修改类型为原创,请各位原作者谅解。如果对本文发布内容有意见,请及时联系作者删除相关内容。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值