1 Java8
Java平台,标准版8是一个主要的发行版,更新有17个部分.
2 新特性
2.1 Java编程语言
- Lambda表达式.可将函数作为参数或将代码作为数据
- 方法引用提供易读的lambda表达式,因为这些方法已经存在名称
- 默认方法可以将函数添加到接口库中并且确保这些接口向前兼容
- 重复注解将同一类型的注解多次使用在相同声明或类型上
- 注解类型可用于任何类型,不仅仅是声明
- 增强类型推理
- 方法参数反射
2.2 Collections
- 新包java.util.stream的类中的Stream接口支持stream元素的函数式操作,Stream接口融入到Collections接口中并可以在collections中进行块操作
- HashMaps键碰撞性能提高
- 紧凑型概要文件包含JavaSE平台的预定义子集,允许应用在小型设备上运行,无需完整的部署平台
2.3 Security
- 客户端侧默认开启TLS1.2.
- AccessController.doPrivileged变体可将代码断言其权限子集,而不阻止堆栈完全遍历去检查其他权限
- 强化基础密码算法
- SSL/TLS服务器命名提示支持JSSE服务器
- 支持AEAD算法
- 密码库增强.
- SHA-224信息摘要
- 增强对NSA套件B加密的支持
- 更好的支持高熵随机数生成
- 新类:java.security.cert.PKIXRevocationChecker可配置X.509证书撤销检查
- Windows系统的64位PKCS11
- Kerberos5重播缓存中的新添加rcache类型
- 支持Kerberos5协议转换和受限委派
- 默认不启用Kerberos5弱加密类型
- GSS接口和Kerberos5机制不绑定SASL
- SASL服务对多个主机名
- MacOS X中JNI连接本地JGSS
- 在SunJSSE供应者中支持增强短暂DH键
- JSSE中支持服务器侧自定义密码套件
2.4 JavaFX
- 新增Modena主题实现
- 新的SwingNode类可将Swing内容嵌入JavaFX应用中
- 新UI控制,包括DatePicker和TreeTableView
- javafx.print包对JavaFX Printing接口开放共有类
- 3D图像特征现在包括3D图形,相机,光线,子场景等
- WebView类提供新的特性和实现
- 增强文本支持
- 支持Hi-DPI
- CSS样式表类变成共有接口
- 新ScheduledService类允许服务自动重启
- 提供ARM平台的JavaFX
2.5 Tools
- 为Nashorn引擎提供jjs命令引用
- java命令启动JavaFX应用
- java手册重新编写
- jdeps命令行工具提供类文件分析功能
- Java管理插件提供远程接入诊断命令
- jarsigner工具可选则从Time Stamping Authority请求时间戳签名
2.5.1 Javac tool
- javac可选的命令参数可用于存储正式参数名称并且反射接口可以检索正式参数名称
- Java语言规范15.12部分等号操作类型规则由javac命令强制执行
- javac现支持检查javadoc问题注释的内容
- javac工具提供生成本地标题服务
2.5.2 Javadoc tool
- javadoc工具支持DocTree接口,该接口使开发者将Javadoc注释作为抽象语法树
- javadoc工具支持新的Javadoc接入接口,开发者可以从Java应用中直接引用Javadoc工具
- javadoc工具支持检查javadoc注释内容
2.6 Internationalization
- Unicode增强,包括对Unicode6.2.0的支持
- 启用Unicode CLDR数据和java.locale.providers系统属性
- 新的日历和地区接口
- 可以将自定义资源包作为扩展安装
2.7 Deployment
- 对于沙箱applets和Java Web启动程序,URLPermission现允许连接到程序启动的服务器,SocketPermission不在允许
- 所有安全级别的主JAR文件中JAR文件清单中都需要Permissions属性
Date-Time包
2.8 Scripting
- Nashorn javascript 引擎代替Rhino javascript引擎
2.9 Pack200
- Pack200 支持常量池项和JSR292介绍的新Byte代码
- JDK8支持JSR-292,JSR-308和JSR-335指定的类文件更改
2.10 IO and NIO
- Solaris的SelectorProvider实现基于Solaris事件端口机制
- 减少<JDK_HOME>/jre/lib/charsets.jar文件尺寸
- 提高java.lang.String构造器和java.lang.String.getBytes()方法性能
2.11 java.lang and java.util包
- 并行Array排序
- 标准Base64编码和解码
- 无符号算术支持
2.12 JDBC
- JDBC-ODBC连接移除
- JDBC4.2新特性
2.13 Java DB
- JDK8包括Java DB10.10
2.14 Networking
- 添加java.net.URLPermission类
- 在java.net.HttpURLConnection类中,如果安装了安全管理员,调用请求打开连接时需要授权
2.15 Concurrency
- 类和接口添加到java.util.concurrent包中
- 方法添加到java.util.concurrent.ConcurrentHashMap类中,支持基于新添加的stream和lambda表达式聚合操作
- 类添加到java.util.concurrent.atomic包中,支持扩展更新变量
- 方法添加到java.util.concurrent.ForkJoinPool类中支持通用池
- 添加java.util.concurrent.locks.StampedLock类,提供为读写提供三种控制模式
2.16 HotSpot
- 增加了硬件内部函数以使用高级加密标准(AES),UseAES和UseAESIntrinsics标志可控制Intel基于AES函数的硬件,标志位:-XX:+UseAES -XX:+UseAESIntrinsics
- 移除PermGen
- 方法调用的字节码指令支持Java默认方法
2.17 Java Mission Control 5.3 Release Notes
- JDK8包含Java Mission Control5.3
【参考文献】
[1]https://www.oracle.com/java/technologies/javase/8-whats-new.html