JDK新版本特性

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 14 的开箱体验,很香,读者朋友需要的话,可以点下面的链接看一看。

Java 14 开箱,它真香香香香

posted @ 2021-03-10 08:50  胜金  阅读(147)  评论(0编辑  收藏  举报