zoukankan      html  css  js  c++  java
  • 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 开箱,它真香香香香

  • 相关阅读:
    Python并发编程-IO模型-IO多路复用实现SocketServer
    Python并发编程-IO模型-非阻塞IO实现SocketServer
    Python并发编程-协程实现socketserver
    Pytho并发编程-利用协程实现简单爬虫
    Python正则表达式中的re.S
    Python-正则表达式
    django-模板初探
    django-response对象
    django-QueryDict 对象
    django-request对象
  • 原文地址:https://www.cnblogs.com/JohanChan/p/14509416.html
Copyright © 2011-2022 走看看