经过2年半的努力、屡次的延期和9个里程碑版本,甲骨文的Java开发团队终于发布了Java 8正式版本。
Java 8版本最大的改进就是
Lambda
表达式
,其目的是使Java更易于为多核处理器编写代码;其次,新加入的Nashorn引擎也使得Java程序可以和JavaScript代码互操作;再者,新的日期时间API、GC改进、并发改进也相当令人期待。
另外,原本要加入Java 8的Jigsaw项目(标准模块系统)由于开发时间关系,被推迟到了Java 9中,不过Java 8已经在朝着这个方向努力了。
Java 8的所有新特性及改进包括(JEP全称为JDK Enhancement Proposal,JDK改进建议):
语言改进:
- JEP 126 :Lambda表达式 & 虚拟扩展方法
- JEP 138 :基于Autoconf的构建系统
- JEP 160 :针对Method Handles的Lambda形式的表征
- JEP 161 :简洁的配置文件
- JEP 162 :为模块化做准备
- JEP 164 :利用CPU指令来改善AES加密的性能
- JEP 174 :Nashorn引擎,允许在Java程序中嵌入JS代码
- JEP 176 :自动检测识别Caller-Sensitive方法
- JEP 179 :JDK API变化和稳定性记录
VM基础改进:
- JEP 142 :减少指定字段上的缓存争用
VM垃圾回收(vm/gc)改进:
VM运行时(vm/rt)改进:
核心基础(core)改进:
- JEP 153 :命令行启动JavaFX应用
核心lang(core/lang)改进:
- JEP 101 :目标类型推断
- JEP 104 :Java类型注解
- JEP 105 :DocTree API
- JEP 106 :在javax.tools中添加Javadoc
- JEP 117 :移除APT(Annotation-Processing Tool)
- JEP 118 :运行过程中可访问参数名
- JEP 120 :重复注解
- JEP 139 :增强了javac,以改善构建速度
- JEP 172 :DocLint工具,用来检查Javadoc注释内容
核心库(core/libs)改进:
- JEP 103 :并行数组排序
- JEP 107 :集合数据批量操作
- JEP 109 :增强的包含Lambda的核心库
- JEP 112 :改进了字符集的实现
- JEP 119 :Core Reflection提供的javax.lang.model实现
- JEP 135 :Base64编解码
- JEP 149 :减少了核心库的内存占用
- JEP 150 :日期时间API
- JEP 155 :改进对并发的支持
- JEP 170 :JDBC 4.2
- JEP 177 :java.text.DecimalFormat.format优化
- JEP 178 :静态链接的JNI库
- JEP 180 :使用平衡树处理频繁的HashMap碰撞
核心i18n(core/i18n)改进:
核心net(core/net)改进:
- JEP 184 :HTTP URL访问权限
核心安全(core/sec)改进:
- JEP 113 :MS-SFU Kerberos 5扩展
- JEP 114 :TLS Server Name Indication(SNI)扩展
- JEP 115 :AEAD密码套件
- JEP 121 :更强的口令加密系统算法
- JEP 123 :可配置的安全随机数生成方法
- JEP 124 :增强了证书撤回检测API
- JEP 129 : NSA Suite B 加密算法实现
- JEP 130 :SHA-224消息摘要算法实现
- JEP 131 :针对64位Windows的SunPKCS11加密提供程序
- JEP 140 :特权限制
- JEP 166 :彻底检修JKS-JCEKS-PKCS12密钥库
web/jaxp改进:
- JEP 185 :JAXP 1.5(限制获取外部资源)
关于这些改进的详细信息可参阅:
编程没有银弹:探讨 Java 8 新增特性的优缺点
详细信息
:
http://openjdk.java.net/projects/jdk8/features
JDK 8下载
:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
同时发布的还有NetBeans IDE 8.0正式版本
,新版本特性见:
NetBeans IDE 8.0 新特性一览