Java历史版本新特性(JDK5~JDK13)
嗯,啊,额,只要是收集整理资源,当然很多不了解的东西和功能,我是很自然的就忽略掉了。改进毕竟很多,我只是列出了相对比较直观的改进
版本演进
Java 5
- 引入
泛型功能(伪泛型) - 增强循环,可以使用
迭代循环,Iterator - 支持
自动装箱和自动拆箱 - 支持类型安全的
枚举 - 支持
可变参数 - 支持
静态引入 - 支持元数据(
注解)功能 - 引入Java Instrumentation
Java 6
- 支持脚本语言
- 引入JDBC 4.0 API
- 引入Java Compiler API
- 支持可插拔注解
Java 7
- 支持了
switch语句以String作为条件,至此已支持4中基本类型(byte, char , short ,int),2种对象类型(枚举,String) - 优化增强了泛型对象
类型推断 - 支持了在一个语句块中捕获多种异常,既一个catch,可以
|多个异常 - 支持
try-with-resources语法,自动为资源类进行关闭,而无需finally进行 - 引入Java NIO2开发包,支持了
AIO - 支持了数值的二进制表示方式,比如
0b1010000, 以前只能8,10,16进制的表示 钻石型语法,省略类型参数的声明- 支持了
动态语言
Java 8
- 支持
lambda表达式 - 支持集合的
Stream流处理 - 支持
Functional函数式接口 - 对各个类支持了很多对应的lambda增强方法
- 增强接口,支持了接口的默认和静态的
具体方法 - 支持
LocalDate等时间包,以改进原有Date - 支持
Optional来改进Null值的处理 - 优化了
HashMap和ConcurrentHashMap
Java 9
- 支持Java平台级模块系统,既
模块化 - 支持了
JShell,既类似node.js, python一样的命令行工具,对待简单的东西,可以直接命令测试 - 改进
Javadoc, 使得Javadoc可以搜索 - 支持了
List.of(),Set.of(),Map.of()的方式初始化不可变集合,省略了大量代码,语法糖 - 改进的Stream API,比如ofNullable(),dropWhile(),takeWhile()等
- 增强接口,支持了
私有接口具体方法,补充了Java8默认和静态方法的支持 - 把
G1垃圾收集器作为默认的垃圾收集器,并标注CMS为过时收集器 - 引入了响应式流Reactive Streams API, 支持了
响应式编程 - 支持了
HTTP/2客户端
Java 10
- 支持了局部变量的类型推导,支持了局部变量的
var声明 - 优化改进了G1垃圾回收器,采用并行化mark-sweep-compact算法
Java 11
- 简化了启动单个源代码文件的方法,使得小白命令式编译运行Java文件变成更加简单,
java Helloworld.java即可 - 增加支持了一个叫
Epsilon的低开销垃圾收集器 - 增加支持了一个叫ZGC(
Z Garbage Collector)的可伸缩低延迟垃圾收集器, 相比G1,停顿时间有了很大的改进,稳定在10ms以下 - 重写了HttpClient,提供了新的标准化
HttpClient API, 以后不再需要引入apache包的HttpClient或是okhttp就能支持高性能的网络编程 - 增加了对
TLS 1.3的支持 - 允许了
飞行记录器进行商用下的使用 - 更好的支持了动态语言,在JVM层面增加了
invokedynamic指令 - 支持了在
lambda内部使用var声明局部变量
Java 12
- 引入了一个叫
Shenandoah低停顿的实验性垃圾收集器 - 改进了
G1垃圾收集器 - 引入了实验性的预览版
Switch语句优化,可以省略break语句,合并多个case - 引入了
JVM的常量API, 有助于一些分析的实现
Java 13
- 增强优化了
ZGC垃圾收集器, 归还未使用的堆内存给操作系统 - 将Java12引入的预览版
Switch语法提为正式版,使得Switch的使用更加的顺滑和流畅 - 支持了
"""字符串块功能
从JDK5到JDK13,Java历经多次重大更新,引入泛型、lambda表达式、模块化、响应式流等特性,不断优化垃圾回收,如G1、ZGC收集器,提升开发效率与性能。
3161

被折叠的 条评论
为什么被折叠?



