天天看点

Java 各个版本的特性一览

个人认为下列列出来的都是版本较为突出的特性

Java  5

1.引入泛型功能(伪泛型)

2.增强循环,可以使用迭代循环,Iterator

3.支持自动装箱和自动拆箱

4.支持类型安全的枚举

5.支持可变参数

6.支持静态引入

7.支持元数据(注解)功能

8.引入Java Instrumentation

Java 6 

1.支持脚本语言

2.引入JDBC 4.0 API

3.引入Java Compiler API

4.支持可插拔注解

Java 7 

1. 支持了switch语句以String作为条件,至此已支持4中基本类型(byte, char , short ,int),2种对象类型(枚举,String)

2.优化增强了泛型对象类型推断

3.支持了在一个语句块中捕获多种异常,既一个catch,可以|多个异常

4.支持try-with-resources语法,自动为资源类进行关闭,而无需finally进行

5.引入Java NIO2开发包,支持了AIO

6.支持了数值的二进制表示方式,比如0b1010000, 以前只能8,10,16进制的表示

7.钻石型语法,省略类型参数的声明

8.支持了动态语言

Java 8

1.支持lambda表达式

2.支持集合的Stream流处理

3.支持Functional函数式接口

4.对各个类支持了很多对应的lambda增强方法

5.增强接口,支持了接口的默认和静态的具体方法

6.支持LocalDate等时间包,以改进原有Date

7.支持Optional来改进Null值的处理

8.优化了HashMap和ConcurrentHashMap

Java 9

1.支持Java平台级模块系统,既模块化

2.支持了JShell,既类似node.js, python一样的命令行工具,对待简单的东西,可以直接命令测试

3.改进Javadoc, 使得Javadoc可以搜索

4.支持了List.of(), Set.of(), Map.of()的方式初始化不可变集合,省略了大量代码,语法糖

5.改进的Stream API,比如ofNullable(),dropWhile(),takeWhile()等

6.增强接口,支持了私有接口具体方法,补充了Java8默认和静态方法的支持

7.把G1垃圾收集器作为默认的垃圾收集器,并标注CMS为过时收集器

8.引入了响应式流Reactive Streams API, 支持了响应式编程

9.支持了HTTP/2客户端

Java 10

1.支持了局部变量的类型推导,支持了局部变量的var声明

2.优化改进了G1垃圾回收器,采用并行化mark-sweep-compact算法

 Java 11

1.简化了启动单个源代码文件的方法,使得小白命令式编译运行Java文件变成更加简单,java Helloworld.java 即可

2.增加支持了一个叫Epsilon的低开销垃圾收集器

3.增加支持了一个叫ZGC(Z Garbage Collector)的可伸缩低延迟垃圾收集器, 相比G1,停顿时间有了很大的改进,稳定在10ms以下

4.重写了HttpClient,提供了新的标准化HttpClient API, 以后不再需要引入apache包的HttpClient或是okhttp就能支持高性能的网络5.编程

6.增加了对TLS 1.3的支持

7.允许了飞行记录器进行商用下的使用

8.更好的支持了动态语言,在JVM层面增加了invokedynamic指令

9.支持了在lambda内部使用var声明局部变量

Java 12 

Java 13