原创翻译-Java 8新特性

1,712 阅读4分钟

前言

  本篇翻译自oracle官网的JDK8 新特性,但是并不包含 JavaFx和安全方面的更新。

JAVA8中的新特性

  Java平台的标准版第8版本是一个重大的发布版本。这篇文档概述了JAVA SE8 和 JDK8中甲骨文的Java SE 8的实现的特性和增强功能。点击各个模块的名字可以看到模块的增强的详细信息。

Java编程语言

  • Lambda表达式是Java 8 中的新增的语言特性,已经被开发到这个版本中。他们允许函数式编程。Lambda允许将函数当做一个参数对待,或者将代码当做数据对待。Lambda表达式让你对单方法的实例(功能性接口)更加简洁。

  • Lambda表达式中的方法引用让已经含有名字的方法更加容易阅读。

  • 默认方法允许在接口或者库中确保旧版本二进制包中接口的兼容性(default关键字)。

  • 重复注解(@Repeatable)允许同样的注解注解被重复声明或者使用多次。重复注解

  • 类型注解现在可以在任何一处是类型的地方使用。而不再是声明的地方。 配合一些可插拔的类型系统(插件,额外引入的包)大大提高了你代码的类型检查。
    类型注解

  • 提高了类型推导 java 8 中的类型推导

  • 方法参数反射 (Method parameter reflection)

集合

  • java.util.stream 提供了流API以便实现函数风格的流编程操作。流API集成到了集合API中间。对集合中的大块数据操作,比如排序和并发的 map-reduce 转换。流API
  • 提高了HashMap中哈希冲突的性能。

可紧凑配置

  可以使用配置文件来决定包含预定义的Java SE平台的子集,并确保应用程序不需要整个平台部署和并且适合小型设备上运行。

Javadoc 工具

  • javadoc工具支持新的DocTree API,使您可以像抽象语法树一样遍历 javadoc注释。

  • javadoc 工具使用了新的 Javadoc 访问API,使得可以直接在应用程序内部直接使用Java Doc工具,而不用新开辟一个线程。访问javadoc新特性页面获取更多信息。

  • javadoc 工具现在支持对javadoc运行期间对生成注释检查,比如在生成的注释中间出现的非法HTML语法和可访问性问题。这个特性是默认开启,也可以由新的-X doclint选项控制。有关详细信息,请参见运行javadoc - x”的输出。这个功能也在javac工具中,尽管它在默认情况下不启用。

国际化

  • 支持更高级别的 Unicode,包括 Unicode 6.2.0

  • 提供 Unicode CLDR 和 java.locale.providers 的系统属性

  • 新的 日历和 本地化API

  • 允许使用自定义资源包。

脚本

  Rhino JavaScript 脚本引擎被移除, 取而代之的是Nashorn JavaScript 脚本引擎。

Pack200

  pack200支持常量池入口,引入JSR 292规定的新的的字节码
JDK8 支持 JSR-292, JSR-308 and JSR-335 所指定的类文件的变化。

IO 与NIO

  • 提供了在Solaris系统上基于Solaris事件端口机制的新的SelectorProvider实现。使用java.nio.channels.spi.Selector系统属性,值为sun.nio.ch.EventPortSelectorProvider
  • 减少了<JDK_HOME>/jre/lib/charsets.jar文件大小
  • 提高了java.lang.String(byte[], *)构造方法和 java.lang.String.getBytes()方法的性能。

java.lang 和 java.util 包

日期与时间

  java8 新增了日期时间包,以便添加支持更广泛的日期-时间模型

JDBC

  • JDBC-ODBC桥接被移除

  • JDBC 4.2新特性

Java DB

JDK 8 包含了Java DB 10.10。

网络

  • 新增了java.net.URLPermission 类
  • java.net.HttpURLConnection 类中,如过安全管理器被安装,调用这个请求会需要权限。

并发

  • java.util.concurrent 包新增了一些类和接口。

  • java.util.concurrent.ConcurrentHashMap 新增方法以便支持流式操作与lambda 表达式。

  • java.util.concurrent.atomic 增加新的类,以便支持可伸缩,可更新的变量。

  • java.util.concurrent.ForkJoinPool 新增加新的类以便支持通用线程池。(docs.oracle.com/javase/8/do…

  • 新增了java.util.concurrent.locks.StampedLock 类,使用三种模式来来控制读写访问。

Java XML - JAXP

HotSpot

  • Intel 平台支持硬件支持高级加密规范(AES)。必须是2010年以后的机器或者是Westmere架构。启用使用:-XX:+UseAES -XX:+UseAESIntrinsics
  • 移除了永久带

Default Methods in the Java Programming Language are supported by the byte code instructions for method invocation.
默认是调用字节码支持。

JAVA任务控制 Java Mission Control 5.3

   JDK 8 包含了 Java Mission Control 5.3 版本。

原文:www.oracle.com/technetwork…

更多翻译:

Hotspot 内存管理白皮书