java8新特性

Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。

官网:JDK 8 中的新增功能 (oracle.com)

新特性

Java8 新增了非常多的特性,我们主要讨论以下几个:

  • Lambda 表达式 − Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。

  • 方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

  • 默认方法 − 默认方法就是一个在接口里面有了一个实现的方法。

  • 新工具 − 新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。

  • Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。

  • Date Time API − 加强对日期与时间的处理。

  • LocalDate,LocalTime,LocalDateTime
  • Optional 类 − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。

  • Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

  • 定义重复注解:@Repeatable

国际化:

  • Unicode 增强功能,包括对 Unicode 6.2.0 的支持
  • 采用 Unicode CLDR Data 和 java.locale.providers System Property
  • 新的日历和区域设置 API
  • 能够将自定义资源包安装为扩展

 

IO 和 NIO

  • 基于 Solaris 事件端口机制的 Solaris 的新实现。若要使用,请在将系统属性设置为值 的情况下运行。SelectorProviderjava.nio.channels.spi.Selectorsun.nio.ch.EventPortSelectorProvider
  • 文件大小减小<JDK_HOME>/jre/lib/charsets.jar
  • 构造函数和方法的性能改进。java.lang.String(byte[], *)java.lang.String.getBytes()

并发

  • 类和接口已添加到包中。java.util.concurrent
  • 已将方法添加到类中,以支持基于新添加的流设施和 lambda 表达式的聚合操作。java.util.concurrent.ConcurrentHashMap
  • 已将类添加到包中以支持可缩放的可更新变量。java.util.concurrent.atomic
  • 已将方法添加到类中以支持公共池。java.util.concurrent.ForkJoinPool
  • 添加该类以提供基于功能的锁,该锁具有三种用于控制读/写访问的模式。java.util.concurrent.locks.StampedLock
posted @ 2021-12-03 15:02  三号小玩家  阅读(77)  评论(0编辑  收藏  举报
Title
三号小玩家的 Mail: 17612457115@163.com, 联系QQ: 1359720840 微信: QQ1359720840