Skip to content

JDK 8 Features


原文:https://openjdk.org/projects/jdk8/features


JEP(JDK 增强提案)根据 JEP 流程中使用的领域和组件分类进行分组。在此页面上,JEP 编号直接链接到引用的 JEP 文档,而 JEP 标题链接到下方对应的简要摘要。

此列表的变化摘要可在 本页面底部 找到。

--/--

126 Lambda Expressions & Virtual Extension Methods | Lambda 表达式和虚拟扩展方法

将 Lambda 表达式(闭包)和支持特性,包括方法引用、增强类型推断和虚拟扩展方法,添加到 Java 编程语言和平台中。

Owner: Brian Goetz

Author: Joseph D. Darcy

Discussion: lambda dash dev at openjdk dot java dot net

Milestone target: M7

138 Autoconf-Based Build System | 基于 Autoconf 的构建系统

引入 autoconf(./configure 风格)的构建设置,重构 Makefile 以消除递归,并利用 JEP 139:增强 javac 以提高构建速度

Author: Magnus Ihse Bursie

Discussion: jdk8 dash dev at openjdk dot java dot net

Milestone target: M6

160 Lambda-Form Representation for Method Handles | 方法句柄的 Lambda 形式表示

通过用可优化的中间表示(IR)替换汇编语言路径来改进方法句柄的实现,并重构实现,使更多的工作在可移植的 Java 代码中完成,而不是硬编码到 JVM 中。

Author: John Rose

Discussion: mlvm dash dev at openjdk dot java dot net

Milestone target: M6

161 Compact Profiles | 紧凑配置文件

定义几个 Java SE 平台规范的子集配置文件,以便那些不需要整个平台的应用程序可以部署和在小型设备上运行。

Owner: Bob Vandette

Author: Bob Vandette, Mark Reinhold

Discussion: jdk8 dash dev at openjdk dot java dot net

Milestone target: M7

162 Prepare for Modularization | 为模块化做准备

进行变更以平稳过渡到未来版本中的模块化,提供新的工具来帮助开发人员准备模块化平台,并废弃某些对模块化构成重大障碍的 API。

Author: Alan Bateman

Discussion: jigsaw dash dev at openjdk dot java dot net

Milestone target: M7

164 Leverage CPU Instructions for AES Cryptography | 利用 CPU 指令进行 AES 密码学加密

通过在可用时使用 x86 AES 指令并避免不必要的 AES 密钥重新展开,改进开箱即用的 AES 加密性能。

Author: Vladimir Kozlov

Discussion: hotspot dash compiler dash dev at openjdk dot java dot net

Milestone target: M6

174 Nashorn JavaScript Engine | Nashorn JavaScript 引擎

设计并实现一个新的轻量级、高性能的 JavaScript 实现,并将其集成到 JDK 中。通过现有的 javax.script API,新的引擎将可供 Java 应用程序使用,并通过一个新的命令行工具更广泛地使用。

Author: Jim Laskey

Discussion: nashorn dash dev at openjdk dot java dot net

Milestone target: M7

176 Mechanical Checking of Caller-Sensitive Methods | 调用敏感方法的机械检查

通过用一种准确识别此类方法并可靠地发现其调用者的机制,取代现有手动维护的调用者敏感方法列表,从而提高 JDK 方法句柄实现的安全性。

Owner: John Rose

Author: John Rose, Christian Thalinger, Mandy Chung

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M7

179 Document JDK API Support and Stability | 文档化 JDK API 的支持和稳定性

在 JDK 中存在一个长期存在的缺点,即在清晰地指定 com.sun.* 类型和其他随 JDK 一起提供的类型的支持和稳定使用契约方面。这些契约和潜在的演进策略应该明确地记录在类型的源代码和生成的类文件中。可以使用特定于 JDK 的注解类型来对这些信息进行建模。

Author: Joseph D. Darcy

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M7

vm/--

142 Reduce Cache Contention on Specified Fields | 减少指定字段的缓存争用

定义一种方式,用于指定对象中的一个或多个字段可能在处理器核心之间高度竞争,以便虚拟机可以安排它们不与其他可能被独立访问的字段或对象共享缓存行。

Owner: Tony Printezis

Author: Jesper Wilhelmsson, Tony Printezis

Discussion: hotspot dash dev at openjdk dot java dot net

Milestone target: M6

vm/gc

122 Remove the Permanent Generation | 移除永久代

从 Hotspot JVM 中移除永久代(Permanent Generation),从而不再需要调整永久代的大小。

Author: Jon Masamitsu

Discussion: hotspot dash dev at openjdk dot java dot net

Milestone target: M5

173 Retire Some Rarely-Used GC Combinations | 废弃一些很少使用的 GC 组合

移除三种很少使用的垃圾收集器组合,以减少持续的开发、维护和测试成本。

Author: Bengt Rutisson

Discussion: hotspot dash gc dash dev at openjdk dot java dot net

Milestone target: M6

vm/rt

136 Enhanced Verification Errors | 增强的验证错误

提供更多的上下文信息来帮助诊断现场中字节码或堆栈映射(stackmap)不足的字节码验证错误。

Author: Keith McGuigan

Discussion: hotspot dash runtime dash dev at openjdk dot java dot net

Milestone target: M5

147 Reduce Class Metadata Footprint | 减少类元数据占用空间

减少 HotSpot 的类元数据内存占用,以提高在小型设备上的性能。

Author: Jiangli Zhou

Discussion: hotspot dash runtime dash dev at openjdk dot java dot net

Milestone target: M6

148 Small VM | 小型虚拟机

支持创建一个不超过 3MB 的小型虚拟机(VM)。

Author: Joe Provino

Discussion: hotspot dash dev at openjdk dot java dot net

Milestone target: M6

171 Fence Intrinsics | Fence 内置函数

sun.misc.Unsafe 类中添加三个内存顺序(memory-ordering)原语。

Author: Doug Lea

Discussion: hotspot dash dev at openjdk dot java dot net

Milestone target: M7

core/--

153 Launch JavaFX Applications | 启动 JavaFX 应用程序

增强 java 命令行启动器,以支持启动 JavaFX 应用程序。

Author: Kumar Srinivasan

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M5

core/lang

101 Generalized Target-Type Inference | 广义目标类型推断

平滑扩展方法类型推断的范围,以支持(i)方法上下文中的推断和(ii)链式调用中的推断。

Author: Maurizio Cimadamore

Discussion: lambda dash dev at openjdk dot java dot net

Milestone target: M7

104 Annotations on Java Types | Java 类型上的注解

在 Java 编程语言的语法中扩展可注解位置的集合,包括指示类型使用以及(根据 Java SE 5.0)类型声明的名称。

Author: Michael Ernst, Alex Buckley

Discussion: type dash annotations dash dev at openjdk dot java dot net

Milestone target: M7

105 DocTree API

扩展编译器树 API,以提供对 javadoc 注释内容的结构化访问。

Author: Jonathan Gibbons

Discussion: compiler dash dev at openjdk dot java dot net

Milestone target: M5

106 Add Javadoc to javax.tools | 在 javax.tools 中添加 Javadoc

扩展 javax.tools API,以提供对 javadoc 的访问。

Author: Jonathan Gibbons

Discussion: compiler dash dev at openjdk dot java dot net

Milestone target: M5

117 Remove the Annotation-Processing Tool (apt) | 移除注解处理工具(apt)

从 JDK 中移除 apt 工具、相关 API 和文档。

Author: Joseph D. Darcy

Discussion: compiler dash dev at openjdk dot java dot net

Milestone target: M1

118 Access to Parameter Names at Runtime | 在运行时访问参数名称

提供一种通过核心反射在运行时轻松可靠地获取方法和构造函数的参数名称的机制。

Owner: Alex Buckley

Author: Joseph D. Darcy

Discussion: enhanced dash metadata dash spec dash discuss at openjdk dot java dot net

Milestone target: M7

120 Repeating Annotations | 重复的注解

更改 Java 编程语言,允许将相同类型的注解多次应用于单个程序元素。

Owner: Alex Buckley

Author: Joseph D. Darcy

Discussion: enhanced dash metadata dash spec dash discuss at openjdk dot java dot net

Milestone target: M7

139 Enhance javac to Improve Build Speed | 增强 javac 以提高构建速度

通过修改 Java 编译器,在单个持久进程中利用所有可用的核心运行,跟踪构建之间的包和类依赖关系,自动生成本地方法的头文件,并清理不再需要的类和头文件,以减少构建 JDK 所需的时间并实现增量构建。

Author: Magnus Ihse Bursie

Discussion: compiler dash dev at openjdk dot java dot net

Milestone target: M6

172 DocLint

提供一种在开发周期早期检测 javadoc 注释错误的方法,并且可以轻松地与源代码进行关联。

Author: Jonathan Gibbons

Discussion: javadoc dash dev at openjdk dot java dot net

Milestone target: M6

core/libs

103 Parallel Array Sorting | 并行数组排序

java.util.Arrays 添加额外的实用方法,利用 JSR 166 Fork/Join 并行性共享池来实现数组的并行排序。

Owner: Chris Hegarty

Author: David Holmes, Chris Hegarty

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M6

107 Bulk Data Operations for Collections | 集合的批量数据操作

为 Java 集合框架添加对数据的批量操作功能。这通常被称为“Java 的过滤 / 映射 / 归约”。批量数据操作包括操作的串行版本(在调用线程上执行)和并行版本(使用多个线程执行)。对数据的操作通常以 lambda 函数的形式表达。

Author: Mike Duigou

Discussion: lambda dash dev at openjdk dot java dot net

Milestone target: M7

109 Enhance Core Libraries with Lambda | 使用 Lambda 增强核心库

利用新的 lambda 语言特性增强 Java 核心库 API,以提高库的可用性和便利性。

Owner: Stuart W. Marks

Author: Stuart W. Marks, Mike Duigou

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M7

112 Charset Implementation Improvements | 字符集实现改进

改进标准和扩展字符集实现的可维护性和性能。

Author: Xueming Shen

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M4

119 javax.lang.model Implementation Backed by Core Reflection | 由核心反射支持的 javax.lang.model 实现

提供一个基于核心反射而不是 javacjavax.lang.model.* API 实现。换句话说,提供一个替代 API 来访问和处理核心反射提供的关于已加载类的反射信息。

Author: Joseph D. Darcy

Discussion: compiler dash dev at openjdk dot java dot net

Milestone target: M7

135 Base64 Encoding & Decoding | Base64 编码与解码

定义一个标准 API 用于 Base64 编码和解码。

Author: Alan Bateman

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M6

149 Reduce Core-Library Memory Usage | 减少核心库的内存使用

在不对性能产生不利影响的情况下,减少核心库类使用的动态内存。

Owner: Roger Riggs

Author: Roger Riggs, Hinkmond Wong, David Holmes

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M6

150 Date & Time API | 日期和时间 API

为 Java SE 平台定义一个新的日期、时间和日历 API。

Owner: Xueming Shen

Author: Stephen Colebourne

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M6

155 Concurrency Updates | 并发更新

可扩展的可更新变量、面向缓存的 ConcurrentHashMap API 增强、ForkJoinPool 改进以及额外的 LockFuture 类。

Owner: Chris Hegarty

Author: Doug Lea

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M7

170 JDBC 4.2

Minor enhancements to JDBC to improve usability and portability

Author: Lance Andersen

Discussion: jdbc dash spec dash discuss at openjdk dot java dot net

Milestone target: M6

177 Optimize java.text.DecimalFormat.format | 优化 java.text.DecimalFormat.format

通过利用整数和浮点数算术的数值特性,优化 java.text.DecimalFormat.format ,以加速小数点后有两到三位数字的情况。

Author: Joseph D. Darcy

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M5

178 Statically-Linked JNI Libraries | 静态链接的 JNI 库

增强 JNI 规范以支持静态链接的本地库。

Author: Bob Vandette

Discussion: jdk8 dash dev at openjdk dot java dot net

Milestone target: M7

180 Handle Frequent HashMap Collisions with Balanced Trees | 使用平衡树处理频繁的 HashMap 冲突

在高哈希碰撞条件下,通过使用平衡树而不是链表来存储映射条目,提高 java.util.HashMap 的性能。在 LinkedHashMap 类中也实现同样的改进。

Owner: Brent Christian

Author: Mike Duigou

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M7

core/i18n

127 Improve Locale Data Packaging and Adopt Unicode CLDR Data | 改进区域设置数据打包和采用 Unicode CLDR 数据

创建一个工具,将 LDML(Locale Data Markup Language)文件转换为可直接由运行时库使用的格式,定义一种将结果打包成模块的方式,然后使用这些模块将 Unicode Consortium 的 CLDR 项目发布的事实标准区域设置数据整合到 JDK 中。

Author: Naoto Sato

Discussion: i18n dash dev at openjdk dot java dot net

Milestone target: M5

128 BCP 47 Locale Matching | BCP 47 区域设置匹配

定义 API,使得使用 BCP 47 语言标签(参见 RFC 5646 )的应用程序可以按照符合 RFC 4647 的方式将它们与用户的语言偏好进行匹配。

Owner: Yuka Kamiya

Author: Naoto Sato

Discussion: i18n dash dev at openjdk dot java dot net

Milestone target: M5

133 Unicode 6.2

扩展现有的平台 API,以支持 Unicode 标准 的 6.2 版本。

Author: Yuka Kamiya

Discussion: i18n dash dev at openjdk dot java dot net

Milestone target: M5

core/net

184 HTTP URL Permissions | HTTP URL 权限

定义一种新类型的网络权限,该权限基于 URL 而不是底层 IP 地址来授予访问权限。

Author: Michael McMahon

Discussion: net dash dev at openjdk dot java dot net

Milestone target: M7

core/sec

113 MS-SFU Kerberos 5 Extensions | MS-SFU Kerberos 5 扩展

MS-SFU 扩展 添加到 JDK 的 Kerberos 5 实现中。

Author: Weijun Wang

Discussion: security dash dev at openjdk dot java dot net

Milestone target: M5

114 TLS Server Name Indication (SNI) Extension | TLS 服务器名称指示(SNI)扩展

添加对 TLS 服务器名称指示(SNI)扩展的支持,以实现基于 SSL/TLS 协议的更灵活的安全虚拟主机和虚拟机基础设施。

Author: Xuelei Fan

Discussion: security dash dev at openjdk dot java dot net

Milestone target: M5

115 AEAD CipherSuites

支持 SP-800-380D、RFC 5116、RFC 5246、RFC 5288、RFC 5289 和 RFC 5430 定义的 AEAD/GCM 密码套件。

Owner: Bradford Wetmore

Author: Xuelei Fan

Discussion: security dash dev at openjdk dot java dot net

Milestone target: M7

121 Stronger Algorithms for Password-Based Encryption | 基于密码的加密的更强算法

在 SunJCE 提供程序中提供更强的基于密码的加密(PBE)算法实现。

Owner: Vincent Ryan

Author: Valerie Peng

Discussion: security dash dev at openjdk dot java dot net

Milestone target: M5

123 Configurable Secure Random-Number Generation | 可配置的安全随机数生成

增强用于安全随机数生成的 API,使其可以配置以满足指定的质量和响应性约束条件。

Author: Bradford Wetmore

Discussion: security dash dev at openjdk dot java dot net

Milestone target: M7

124 Enhance the Certificate Revocation-Checking API | 增强证书吊销检查 API

改进证书吊销检查 API,以支持尽力检查、终端实体证书检查以及机制特定的选项和参数。

Author: Sean Mullan

Discussion: security dash dev at openjdk dot java dot net

Milestone target: M3

129 NSA Suite B Cryptographic Algorithms | NSA Suite B 密码算法

提供符合 NSA Suite B 所需的密码算法的实现。

Author: Valerie Peng

Discussion: security dash dev at openjdk dot java dot net

Milestone target: M4

130 SHA-224 Message Digests | SHA-224 消息摘要

实现 SHA-224 消息摘要算法及其相关算法。

Author: Valerie Peng

Discussion: security dash dev at openjdk dot java dot net

Milestone target: M3

131 PKCS#11 Crypto Provider for 64-bit Windows | 64 位 Windows 的 PKCS#11 加密提供程序

将 SunPKCS11 提供程序包含在 64 位 Windows 的 JDK 中。

Author: Valerie Peng

Discussion: security dash dev at openjdk dot java dot net

Milestone target: M3

140 Limited doPrivileged | 有限的 doPrivileged

允许代码在不阻止完整访问控制堆栈检查其他权限的情况下,断言其权限的子集。

Author: Sean Mullan

Discussion: security dash dev at openjdk dot java dot net

Milestone target: M7

166 Overhaul JKS-JCEKS-PKCS12 Keystores | 改进 JKS-JCEKS-PKCS12 密钥库

通过向 PKCS#12 密钥库添加等效支持,方便从 JKS 和 JCEKS 密钥库迁移数据。增强 KeyStore API 以支持新功能,如条目元数据和跨多个密钥库的逻辑视图。使得可以使用 JEP-121 引入的强加密算法来保护密钥库条目。

Author: Vincent Ryan

Discussion: security dash dev at openjdk dot java dot net

Milestone target: M6

web/jaxp

185 Restrict Fetching of External XML Resources | 限制获取外部 XML 资源

增强 JAXP API,以添加限制可用于获取外部资源的网络协议集的能力。

Author: Joe Wang

Discussion: core dash libs dash dev at openjdk dot java dot net

Milestone target: M7

Change history

2012/9/11

  • 103 Parallel Array Sorting | 并行数组排序 — Targeted to M5
  • 127 Improve Locale Data Packaging | 改进区域设置数据打包和采用 Unicode CLDR 数据 — Targeted to M5
  • 150 JSR 310: Date and Time API | 日期和时间 API — Targeted to M6

2012/11/6

  • 121 Stronger Algorithms for Password-Based Encryption | 基于密码的加密的更强算法 — Retargeted to M5
  • 129 NSA Suite B Cryptographic Algorithms | NSA Suite B 密码算法 — Retargeted to M5
  • 133 Unicode 6.2 — Retargeted to M5

2012/12/4

  • 103 Parallel Array Sorting | 并行数组排序 — Retargeted to M6
  • 110 New HTTP Client | 新的 HTTP 客户端 — Retargeted to M6
  • 111 Additional Unicode Constructs for Regular Expressions | 正则表达式的额外 Unicode 构造 — Dropped
  • 112 Charset Implementation Improvements | 字符集实现改进 — Retargeted to M4
  • 119 javax.lang.model Implementation Backed by Core Reflection | 由核心反射支持的 javax.lang.model 实现 — Retargeted to M6
  • 136 Enhanced Verification Errors | 增强的验证错误 — Targeted to M5
  • 140 Limited doPrivileged | 有限的 doPrivileged — Retargeted to M6

2012/12/6

  • 138 Autoconf-Based Build System | 基于 Autoconf 的构建系统 — Targeted to M6
  • 142 Reduce Cache Contention on Specified Fields | 减少指定字段的缓存争用 — Targeted to M6
  • 143 Improve Contended Locking | 改进争用锁定机制 — Targeted to M6
  • 147 Reduce Class Metadata Footprint | 减少类元数据占用空间 — Targeted to M6
  • 148 Small VM | 小型虚拟机 — Targeted to M6
  • 149 Reduce Core-Library Memory Usage | 减少核心库的内存使用 — Targeted to M6
  • 155 Concurrency Updates (jsr166e) | 并发更新 — Targeted to M6
  • 161 Compact Profiles | 紧凑配置文件 — Targeted to M6
  • 162 Prepare for Modularization | 为模块化做准备 — Targeted to M6
  • 165 Compiler Control | 编译器控制 — Targeted to M6
  • 166 Overhaul JKS-JCEKS-PKCS12 Keystores | 改进 JKS-JCEKS-PKCS12 密钥库 — Targeted to M6
  • 170 JDBC 4.2 — Targeted to M6
  • 171 Fence Intrinsics | Fence 内置函数 — Targeted to M6
  • 172 DocLint — Targeted to M6

2012/12/20

  • 139 Enhance javac to Improve Build Speed | 增强 javac 以提高构建速度 — Targeted to M6

2013/1/14

  • 108 Collections Enhancements from Third-Party Libraries | 来自第三方库的集合增强功能 — Dropped
  • 110 New HTTP Client | 新的 HTTP 客户端 — Dropped
  • 156 G1 GC: Reduce need for full GCs | G1 GC:减少对 Full GC 的需求 — Dropped
  • 107 Bulk Data Operations for Collections | 集合的批量数据操作 — Retargeted to M7
  • 123 Configurable Secure Random-Number Generation | 可配置的安全随机数生成 — Retargeted to M7
  • 155 Concurrency Updates | 并发更新 — Retargeted to M7
  • 171 Fence Intrinsics | Fence 内置函数 — Retargeted to M7
  • 164 Leverage CPU Instructions for AES Cryptography | 利用 CPU 指令进行 AES 密码学加密 — Targeted to M6
  • 173 Retire Some Rarely-Used GC Combinations | 废弃一些很少使用的 GC 组合 — Targeted to M6

2013/1/30

  • 101 Generalized Target-Type Inference | 广义目标类型推断 — Retargeted to M7
  • 109 Enhance Core Libraries with Lambda | 使用 Lambda 增强核心库 — Retargeted to M7
  • 118 Access to Parameter Names at Runtime | 在运行时访问参数名称 — Retargeted to M7
  • 119 javax.lang.model Implementation Backed by Core Reflection | 由核心反射支持的 javax.lang.model 实现 — Retargeted to M7
  • 120 Repeating Annotations | 重复的注解 — Retargeted to M7
  • 126 Lambda Expressions & Virtual Extension Methods | Lambda 表达式和虚拟扩展方法 — Retargeted to M7
  • 140 Limited doPrivileged | 有限的 doPrivileged — Retargeted to M7
  • 161 Compact Profiles | 紧凑配置文件 — Retargeted to M7
  • 174 Nashorn JavaScript Engine | Nashorn JavaScript 引擎 — Targeted to M7

2013/2/20

  • 104 Annotations on Java Types | Java 类型上的注解 — Retargeted to M7
  • 115 AEAD CipherSuites — Retargeted to M7
  • 162 Prepare for Modularization | 为模块化做准备 — Retargeted to M7

2013/4/30

  • 143 Improve Contended Locking | 改进争用锁定机制 — Dropped
  • 165 Compiler Control | 编译器控制 — Dropped
  • 176 Mechanical Checking of Caller-Sensitive Methods | 调用敏感方法的机械检查 — Targeted to M7
  • 177 Optimize java.text.DecimalFormat.format | 优化 java.text.DecimalFormat.format — Targeted to M5
  • 178 Statically-Linked JNI Libraries | 静态链接的 JNI 库 — Targeted to M7
  • 179 Document JDK API Support and Stability | 文档化 JDK API 的支持和稳定性 — Targeted to M7
  • 180 Handle Frequent HashMap Collisions with Balanced Trees | 使用平衡树处理频繁的 HashMap 冲突 — Targeted to M7
  • 184 HTTP URL Permissions | HTTP URL 权限] — Targeted to M7

2013/6/13

  • 185 JAXP 1.5: Restrict Fetching of External Resources | 限制获取外部 XML 资源 — Targeted to M7