JDK各个版本新特性

JDK各个版本新特性_第1张图片JDK8新特性

 

Java 8 发布于 2014 年 3 月份,可以说是 Java 6 之后最重要的版本更新,深受开发者的喜爱。

 

函数式编程和 Lambda 表达式

  

Stream 流

参考:https://mp.weixin.qq.com/s/7hNUjjmqKcHDtymsfG_Gtw

单从“Stream”这个单词上来看,它似乎和 java.io 包下的 InputStream 和 OutputStream 有些关系。实际上呢,没毛关系。Java 8 新增的 Stream 是为了解放程序员操作集合(Collection)时的生产力,之所以能解放,很大一部分原因可以归功于同时出现的 Lambda 表达式——极大的提高了编程效率和程序可读性。Stream 就好像一个高级的迭代器,但只能遍历一次,就好像一江春水向东流;在流的过程中,对流中的元素执行一些操作,比如“过滤掉长度大于 10 的字符串”、“获取每个字符串的首字母”等。

流的操作可以分为两种类型:

 

1)中间操作,可以有多个,每次返回一个新的流,可进行链式操作。

 

2)终端操作,只能有一个,每次执行完,这个流也就用光光了,无法执行下一个操作,因此只能放在最后。

 

创建流:如果是数组的话,可以使用 Arrays.stream() 或者 Stream.of() 创建流;如果是集合的话,可以直接使用 stream() 方法创建流,因为该方法已经添加到 Collection 接口中。

操作流:1)过滤,filter(),可以从流中筛选出我们想要的元素;2)映射,如果想通过某种操作把一个流中的元素转化成新的流中的元素,可以使用 map() 方法。3)匹配,Stream 类提供了三个方法可供进行元素匹配,它们分别是:anyMatch(),只要有一个元素匹配传入的条件,就返回 true;allMatch(),只有有一个元素不匹配传入的条件,就返回 false;如果全部匹配,则返回 true。noneMatch(),只要有一个元素匹配传入的条件,就返回 false;如果全部匹配,则返回 true。4)组合,reduce() 方法的主要作用是把 Stream 中的元素组合起来。

转换流:既然可以把集合或者数组转成流,那么也应该有对应的方法,将流转换回去——collect() 方法就满足了这种需求。

Java Date Time API

接口中可以使用默认方法和静态方法

JDK9新特性

Java 9 更新的重要功能有:

 

模块系统

不可变的 List、Set、Map 的工厂方法

接口中可以有私有方法

垃圾收集器改进

JDK10新特性

Java 10 更新的重要功能有:

 

局部变量类型推断,举个例子,var list = new ArrayList();,可以使用 var 来作为变量类型,Java 编译器知道 list 的类型为字符串的 ArrayList。

增强 java.util.Locale。

提供了一组默认的根证书颁发机构(CA)。

JDK10新特性

Java 11 更新的重要功能有:

 

可以直接使用 java 命令运行 Java 程序,源代码将会隐式编译和运行。

String 类新增了一些方法,比如说 isBlank()、lines()、strip() 等等。

Files 类新增了两个读写方法,readString() 和 writeString()。

可以在 Lambda 表达式中使用 var 作为变量类型。

JDK11新特性

Java 11 是继 Java 8 之后的第二个商用版本,如果你下载的是 Oracle JDK,则需要进行付费;如果想继续使用免费版本,需要下载 Open JDK。

 

Oracle JDK 中会有一些 Open JDK 没有的、商用闭源的功能。

 

Java 11 更新的重要功能有:

 

可以直接使用 java 命令运行 Java 程序,源代码将会隐式编译和运行。

String 类新增了一些方法,比如说 isBlank()、lines()、strip() 等等。

Files 类新增了两个读写方法,readString() 和 writeString()。

可以在 Lambda 表达式中使用 var 作为变量类型。

JDK12新特性

Java 12 发布于 2019 年 3 月 19 日,更新的重要功能有:

 

JVM 更新

File.mismatch() 方法

紧凑型数字格式

String 类新增了一些方法,比如说 indent()

JDK13新特性

Java 13 发布于 2019 年 9 月 17 日,更新的重要功能有:

 

文本块,预览功能

switch 表达式,预览功能

Java Socket 重新实现

FileSystems.newFileSystem() 方法

支持 Unicode 12.1

可伸缩、低延迟的垃圾收集器改进,用于返回未使用的内存

JDK14新特性

Java 14 发布于 2020 年 3 月 17 日,更新的重要功能有:

 

switch 表达式

instanceof 增强表达式,预览功能

文本块,第二次预览

Records,预览功能

你可能感兴趣的:(java)