Java Platform, Standard Edition 8 是一个主要功能版本。本文档总结了 Java SE 8 和 JDK 8(Oracle 对 Java SE 8 的实现)中的特性和增强功能。
Lambda 表达式是一种新的语言功能,已在此版本中引入。它们使您能够将功能视为方法参数,或将代码视为数据。Lambda 表达式让您可以更紧凑地表达单方法接口(称为函数式接口)的实例。
方法引用为已有名称的方法提供易于阅读的 lambda 表达式。
默认方法允许将新功能添加到库的接口中,并确保与为这些接口的旧版本编写的代码的二进制兼容性。
重复注解提供了将相同注解类型多次应用于相同声明或类型使用的能力。
类型注释提供了在使用类型的任何地方应用注释的能力,而不仅仅是在声明上。与可插入类型系统一起使用,此功能可以改进代码的类型检查。
改进的类型推断。
方法参数反射。
新java.util.stream包中的类提供了一个 Stream API 来支持对元素流的函数式操作。Stream API 集成到 Collections API 中,它支持对集合进行批量操作,例如顺序或并行 map-reduce 转换。
具有密钥冲突的 HashMap 的性能改进
Compact Profiles包含 Java SE 平台的预定义子集,并支持不需要在小型设备上部署和运行整个平台的应用程序。
默认启用客户端 TLS 1.2
它的新变体AccessController.doPrivileged使代码能够断言其特权的子集,而不会阻止完全遍历堆栈以检查其他权限
更强大的基于密码的加密算法
JSSE 服务器中的 SSL/TLS 服务器名称指示 (SNI) 扩展支持
支持 AEAD 算法:增强了 SunJCE 提供程序以支持 AES/GCM/NoPadding 密码实现以及 GCM 算法参数。并且 SunJSSE 提供程序得到增强以支持基于 AEAD 模式的密码套件。
KeyStore 增强功能,包括新的 Domain KeyStore typejava.security.DomainLoadStoreParameter和-importpasswordkeytool 实用程序 的新命令选项
SHA-224 消息摘要
增强对 NSA Suite B 加密的支持
更好地支持高熵随机数生成
java.security.cert.PKIXRevocationChecker用于配置 X.509 证书吊销检查的 新类
适用于 Windows 的 64 位 PKCS11
Kerberos 5 重放缓存中的新 rcache 类型
支持 Kerberos 5 协议转换和约束委派
默认禁用 Kerberos 5 弱加密类型
GSS-API/Kerberos 5 机制的未绑定 SASL
多个主机名的 SASL 服务
JNI 桥接 Mac OS X 上的原生 JGSS
在 SunJSSE 提供程序中支持更强的临时 DH 密钥
支持 JSSE 中的服务器端密码套件首选项自定义
此版本中已实施新的 Modena 主题。
新SwingNode类使开发人员能够将 Swing 内容嵌入到 JavaFX 应用程序中。
新的 UI 控件包括DatePicker和TreeTableView控件。
该javafx.print包为 JavaFX 打印 API 提供了公共类。
3D 图形功能现在包括 3D 形状、相机、灯光、子场景、材质、拾取和抗锯齿。新的Shape3D( Box、Cylinder、MeshView和Sphere子类)、SubScene、Material、PickResult、LightBase(AmbientLight和PointLight子类) 和SceneAntialiasingAPI 类已添加到 JavaFX 3D 图形库中。该CameraAPI类也已在此版本更新。请参见相应的javadoc类别javafx.scene.shape.Shape3D,javafx.scene.SubScene,javafx.scene.paint.Material,javafx.scene.input.PickResult,javafx.scene.SceneAntialiasing,和入门JavaFX的3D图形文件。
本WebView类提供新功能和改进。
增强的文本支持包括双向文本和复杂的文本脚本,例如控件中的泰语和印地语,以及文本节点中的多行、多样式文本。
此版本中添加了对 Hi-DPI 显示器的支持。
CSS Styleable* 类成为公共 API。
新的ScheduledService类允许自动重启服务。
JavaFX 现在可用于 ARM 平台。JDK for ARM 包括 JavaFX 的基础、图形和控件组件。
该jjs命令用于调用 Nashorn 引擎。
该java命令启动 JavaFX 应用程序。
该java男子页面已经被重新设计。
该jdeps命令行工具提供了一种分析类文件。
Java 管理扩展 (JMX) 提供对诊断命令的远程访问。
该jarsigner工具可以选择从时间戳机构 (TSA) 请求签名时间戳。
Javac工具
该命令的-parameters选项javac可用于存储形式参数名称并启用反射 API 以检索形式参数名称。
Java 语言规范 (JLS) 第 15.21 节中的相等运算符的类型规则现在由javac命令正确强制执行。
该javac工具现在支持javadoc在javadoc运行时生成的文件中检查可能导致各种问题的评论内容,例如无效的 HTML 或可访问性问题。该功能由新-Xdoclint选项启用。
该javac工具现在提供了根据需要生成本机标头的能力。这消除了将javah工具作为构建管道中的单独步骤运行的需要。该功能是javac通过使用新-h选项启用的,该选项用于指定应写入头文件的目录。将为任何具有本机方法或使用新的 type 注释注释的常量字段的类生成头文件java.lang.annotation.Native。
Javadoc 工具
该javadoc工具支持新的DocTreeAPI,使您能够将 Javadoc 注释作为抽象语法树进行遍历。
该javadoc工具支持新的 Javadoc Access API,使您可以直接从 Java 应用程序调用 Javadoc 工具,而无需执行新进程。
该javadoc工具现在支持javadoc在javadoc运行时生成的文件中检查可能导致各种问题的评论内容,例如无效的 HTML 或可访问性问题。该功能默认启用,也可以由新-Xdoclint选项控制。此功能也可在该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设置为 value 的情况下运行sun.nio.ch.EventPortSelectorProvider。
减小/jre/lib/charsets.jar文件 大小
java.lang.String(byte[], *)构造函数和java.lang.String.getBytes()方法的 性能改进。
并行数组排序
标准编码和解码 Base64
无符号算术支持
JDBC-ODBC 桥已被删除。
JDBC 4.2 引入了新功能。
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类中以支持公共池。
该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。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习