JDK 8
Java Platform,Standard Edition 8是一个主要功能版本。本文档总结了Java SE 8和JDK 8(Oracle的Java SE 8实现)中的功能和增强功能。单击组件名称可获得该组件增强功能的更详细说明。
- Lambda Expressions是一种新的语言功能,已在此版本中引入。它们使您可以将功能视为方法参数,或将代码视为数据。Lambda表达式允许您更紧凑地表达单方法接口(称为功能接口)的实例。
- 方法引用为已经具有名称的方法提供易于阅读的lambda表达式。
- 默认方法允许将新功能添加到库的接口,并确保与为这些接口的旧版本编写的代码的二进制兼容性。
- 重复注释提供了对同一声明或类型使用多次应用相同注释类型的功能。
- 类型注释提供了在使用类型的任何地方应用注释的功能,而不仅仅是在声明上。与可插拔类型系统一起使用时,此功能可以改进代码的类型检查。
- 改进的类型推断。
- 方法参数反射。
- 新
java.util.stream
包中的类提供Stream API以支持对元素流的功能样式操作。Stream API集成到Collections API中,可以对集合进行批量操作,例如顺序或并行map-reduce转换。 - 具有关键冲突的HashMaps的性能改进
- Compact Profiles包含Java SE平台的预定义子集,并支持不需要在小型设备上部署和运行整个Platform的应用程序。
- 安全
- 默认情况下启用客户端TLS 1.2
- 新的变体
AccessController.doPrivileged
使代码能够断言其特权的子集,而不会阻止堆栈的完整遍历来检查其他权限 - 更强大的基于密码加密的算法
- JSSE服务器中的SSL / TLS服务器名称指示(SNI)扩展支持
- 支持AEAD算法:SunJCE提供程序已得到增强,可支持AES / GCM / NoPadding密码实现以及GCM算法参数。SunJSSE提供商已得到增强,可支持基于AEAD模式的密码套件。请参阅Oracle Providers文档,JEP 115。
- KeyStore增强功能,包括新的Domain KeyStore类型
java.security.DomainLoadStoreParameter
,以及-importpassword
keytool实用程序的新命令选项 - SHA-224消息摘要
- 增强了对NSA Suite B密码学的支持
- 更好地支持高熵随机数生成
java.security.cert.PKIXRevocationChecker
用于配置X.509证书的吊销检查的新类- 适用于Windows的64位PKCS11
- Kerberos中的新rcache类型5重播缓存
- 支持Kerberos 5协议转换和约束委派
- 默认情况下禁用Kerberos 5弱加密类型
- 用于GSS-API / Kerberos 5机制的未绑定SASL
- 多个主机名的SASL服务
- JNI在Mac OS X上桥接到本机JGSS
- 在SunJSSE提供商中支持更强大的临时DH密钥
- 支持JSSE中的服务器端密码套件首选项定制
- 新的Modena主题已在此版本中实施。有关更多信息,请访问fxexperience.com上的博客。
- 新
SwingNode
类使开发人员能够将Swing内容嵌入到JavaFX应用程序中。请参阅JavaFX应用程序中的SwingNodejavadoc和嵌入Swing内容。 - 新的UI控件包括控件DatePicker和TreeTableView控件。
- 该
javafx.print
包提供JavaFX Printing API的公共类。有关更多信息,请参阅javadoc。 - 3D图形功能现在包括3D形状,相机,灯光,子场景,材质,拾取和抗锯齿。新的
Shape3D
(Box
,Cylinder
,MeshView
,和Sphere
子类), ,SubScene
,Material
,(PickResult
和子类),以及API类已添加到JavaFX的3D图形库。此版本中的API类也已更新。请参见相应的类Javadoc ,,,,,和入门JavaFX的3D图形文件。LightBase
AmbientLight
PointLight
SceneAntialiasing
Camera
javafx.scene.shape.Shape3D
javafx.scene.SubScene
javafx.scene.paint.Material
javafx.scene.input.PickResult
javafx.scene.SceneAntialiasing
- 该
WebView
课程提供了新功能和改进。查看HTML5的支持功能,以获取有关其他HTML5功能的更多信息,包括Web套接字,Web工作者和Web字体。 - 增强的文本支持包括双向文本和复杂的文本脚本,如控件中的泰语和印地语,以及文本节点中的多行,多样式文本。
- 此版本中添加了对Hi-DPI显示的支持。
- CSS Styleable *类成为公共API。有关javafx.css更多信息,请参阅javadoc。
- 新ScheduledService类允许自动重启服务。
- JavaFX现在可用于ARM平台。JDK for ARM包括JavaFX的基础,图形和控件组件。
jjs
提供该命令以调用Nashorn引擎。- 该
java
命令启动JavaFX应用程序。 - 该
java
男子页面已经被重新设计。 - 该
jdeps
命令行工具提供了一种分析类文件。 - Java Management Extensions(JMX)提供对诊断命令的远程访问。
- 该
jarsigner
工具具有从时间戳管理局(TSA)请求签名时间戳的选项。 - Javac工具
- 该命令的
-parameters
选项javac
可用于存储形式参数名称,并使Reflection API能够检索形式参数名称。 - 现在,该
javac
命令可以正确实施Java语言规范(JLS)第15.21节中的相等运算符的类型规则。 - 该
javac
工具现在支持检查javadoc
注释的内容,以查找可能导致javadoc
运行时生成的文件中的各种问题(例如无效的HTML或可访问性问题)的问题。该-Xdoclint
选项启用了该功能。有关更多详细信息,请参阅运行“javac -X
” 的输出。此功能也可在该javadoc
工具中使用,默认情况下在此处启用。 - 该
javac
工具现在可以根据需要生成本机标头。这样就无需将javah
工具作为构建管道中的单独步骤运行。javac
通过使用new-h
选项启用该功能,该选项用于指定应在其中写入头文件的目录。将为任何具有本机方法的类或使用新注释类型注释的常量字段生成头文件java.lang.annotation.Native
。
- 该
javadoc
工具支持新的DocTree
API,使您可以将Javadoc注释作为抽象语法树进行遍历。 - 该
javadoc
工具支持新的Javadoc Access API,使您可以直接从Java应用程序调用Javadoc工具,而无需执行新进程。有关更多信息,请参阅javadoc的新页面。 - 该
javadoc
工具现在支持检查javadoc
注释的内容,以查找可能导致javadoc
运行时生成的文件中的各种问题(例如无效的HTML或可访问性问题)的问题。默认情况下启用该功能,也可以通过新-Xdoclint
选项进行控制。有关更多详细信息,请参阅运行“javadoc -X
” 的输出。此javac
工具也可以使用此功能,但默认情况下不会启用此功能。
- Unicode增强功能,包括对Unicode 6.2.0的支持
- 采用Unicode CLDR数据和java.locale.providers系统属性
- 新日历和区域设置API
- 能够将自定义资源包安装为扩展
- 对于沙盒小程序和Java Web Start应用程序,
URLPermission
现在用于允许连接返回到启动它们的服务器。SocketPermission
不再被授予。 - 所有安全级别的主JAR文件的JAR文件清单中都需要Permissions属性。
- Rhino javascript引擎已被Nashorn Javascript引擎取代
- Pack200支持常量池条目和新的字节码由JSR 292引入
- JDK8支持JSR-292,JSR-308和JSR-335指定的类文件更改
SelectorProvider
基于Solaris事件端口机制的Solaris 新实现。要使用,请在系统属性java.nio.channels.spi.Selector
设置为值的情况下运行sun.nio.ch.EventPortSelectorProvider
。- 减小
<JDK_HOME>/jre/lib/charsets.jar
文件的大小 java.lang.String(byte[], *)
构造函数和java.lang.String.getBytes()
方法的性能改进。
- 并行阵列排序
- 标准编码和解码Base64
- 无符号算术支持
- JDBC-ODBC Bridge已被删除。
- JDBC 4.2引入了新功能。
- Java DB
- JDK 8包括Java DB 10.10。
- Networking
- 该课程
java.net.URLPermission
已添加。 - 在类中
java.net.HttpURLConnection
,如果安装了安全管理器,则请求打开连接的调用需要权限。
- 类和接口已添加到
java.util.concurrent
包中。 - 已将
java.util.concurrent.ConcurrentHashMap
类添加到类中以支持基于新添加的流工具和lambda表达式的聚合操作。 - 已将类添加到
java.util.concurrent.atomic
包中以支持可伸缩的可更新变量。 - 方法已添加到
java.util.concurrent.ForkJoinPool
类中以支持公共池。 - 该
java.util.concurrent.locks.StampedLock
班已添加到提供基于能力的锁有三种模式控制读/写访问。
- 添加了硬件内在函数以使用高级加密标准(AES)。在
UseAES
和UseAESIntrinsics
标志是可用的启用Intel硬件的基于硬件的AES内部函数。硬件必须是2010或更新的Westmere硬件。
注意: AES内在函数仅受服务器VM支持。
例如,要启用硬件AES,请使用以下标志:
-XX:+ UseAES -XX:+ UseAESIntrinsics
要禁用硬件AES,请使用以下标志:
-XX:-UseAES -XX:-UseAESIntrinsics
- 去除PermGen。
- 方法调用的字节代码指令支持Java编程语言中的缺省方法。
- JDK 8包括Java Mission Control 5.3。