新功能 JSR 308:类型的批注 JSR 310:日期和时间 API JSR 335:Lambda 表达式 更新的功能 JSR 114:JDBC 行集 JSR 160:JMX 远程 API JSR 199:Java 编译器 API JSR 173:XML 的流 API JSR 206:Java API for XML Processing JSR 221:JDBC 4.0 JSR 269:可插拔的批注处理 API
class List { static List nil() { ... }; static List cons(Z head, List tail) { ... }; E head() { ... } }
List ls = List.nil(); // Inferred correctly
List.cons(42, List.nil());
错误:预期List,发现List
JEP101 Add inferrence in argument position and chained calls. List.cons is a static method, but the type cannot currently be inferred from the fact that the first parameter is an int that would be autoboxed to an Integer
第12页
在运行时访问参数名称
用于检索方法和构造函数的参数名称的机制 在运行时通过核反射实现 改进的代码可读性 消除冗余批注 改进 IDE 功能 自动生成模板代码
JEP118 Currently parameter names of methods and constructors cannot be retrieved via reflection Parameter types can be retrieved, but not names (Look at Method and Constructor classes in java.lang.reflect)
第13页
小改进
重复批注 具有同一类型的多个批注应用到单个程序元素 不再有 apt 工具和关联 API 完成到 JSR 269 实施的过渡 DocTree API 提供对 javadoc 注释语义元素的访问 DocLint 工具 使用 DocTree API 识别 javadoc 注释中的基本错误 javax.tools 从 API 以及命令行/执行调用 javadoc 工具
JEP 155 Completion based design. Multiple threads getting stalled by one thread. The way round this is to basically pass on the work from a thread that is waiting to the one doing the work. The waiting thread is then free to be reused.
适用于 Java SE 平台的新日期、时间和日历 API 支持标准时间概念 部分、持续时间、期间、间隔 日期、时间、瞬间和时区 提供有限的日历系统集,并且可延伸到其他集 使用相关标准,包括 ISO-8601、CLDR 和 BCP47 基于明确时间刻度,与 UTC 有关
JEP150 Internal storage using just the offset in nanosecods from the Epoch. Things like day and date, etc calculated on demand to improve efficiency. Partial, e.g. March 20th (no year). Not specific Duration (nanos), period (minutes, days, etc), interval nanos between two points in time.
更好实现 SecureRandom 当前,应用程序可在 Linux 上挂起 JVM 使用 /dev/random 如果系统熵池不是足够大,该功能将被阻止 这项工作尚在进行中
JEP123
第30页
增强的证书吊销-检查 API
当前 java.security.cert API 要么是全部,要么什么都不是 未能连接服务器是致命错误(Fate error) 新类 RevocationChecker RevocationParameters
JEP124 RevocationChecker can evaluate the status of a certificate revocation based on a RevocationParmaters object that encapsulates the revocation requestproperties
受限的 doPrivilege 用启用的权限执行 Lambda 表达式 NSA Suite B 加密算法 符合标准,可满足美国政府和银行的要求 AEAD CipherSuite 支持 符合标准,可满足美国政府和银行的要求 SHA-224 消息摘要 由于 SHA-1 中的已知缺陷而必需 利用 CPU 指令实现 AES 加密 改进加密/解密性能
doPrivileged, allows a Lambda expression (i.e. a functional interface) to have it’s method executed Authenticated Encryption with Associated Data (AEAD) secure hash algorithm SHA Advanced encryption standard (AES)
JEP 140, 129, 115, 130, 164
第33页
小更改
Microsoft Services For UNIX (MS-SFU) Kerberos 5 扩展 增强的 Microsoft 互操作性 TLS Server Name Indication (SNI) 扩展 更灵活的安全虚拟托管、虚拟机基础架构 适用于 64 位 Windows 的 PKCS#11 加密提供程序 允许使用广泛可用的本地库 基于口令加密的更强大算法 研究人员和黑客均继续发展 革新 JKS-JCEKS-PKCS12 密钥存储 为加密应用程序简化与 Java SE 密钥存储的交互
PKCS – Public Key Cryptography Standard from RSA Labs (Hardware devices and smart cards) JKS-JCEKS-PKCS12 Java Key Store (from SUN days in the JDK) Java Cryptography Extensions Key Store
loadFence prevent reordering of load operations before this call with loads and stores after this call storeFence prevent reordering of store operations before this call with loads and stores after this call ringFence prevent reordering of all memory operations before this call with loads and stores after this call JEP 171