写点什么

JDK 7 M5 包含了并发性和性能更新,但功能并不完整

2009 年 11 月 29 日

Sun 的 Java SE 团队最近发布了 JDK7 的第 5 个重要的版本 M5。该版本包括了 Coin 项目大致一半的特性,由 Doug Lea 等更新了 java.util.concurrent 包,还包括其他一些增强特性。

Coin 项目的新特性有:

  1. 改善了泛型实例创建的类型推断,原来它对类实例创建的类型推断比较有限,因此必须显示声明构造函数的参数类型,但如果这些参数能从上下文推断出来的话,就可以用一个类型参数的空集合来代替。这样,对于如下代码:
    Map<String, List> anagrams = new HashMap<String, List>();
    你现在可以写为:
    Map<String, List> anagrams = new HashMap<>();
  2. 支持二进制文字,在数字中支持下划线分隔符帮助阅读——比如:long creditCardNumber = 1234_5678_9012_3456L
  3. 在 Switch 语句中支持 String 了。

对于 java.util.concurrent 包的更新包括对 Phasers、TransferQueues 以及 fork/join 框架的支持。对这些已包含特性和那些还未确定包含的特性(如 Fences API 及 ParallelArray),Alex Miller 提供了一个非常好的总结

除此之外,Swing 加了一个新组件—— JLayer ,用来美化复合的组件以及截获子组件事件。而且 Sun 还扩展了椭圆曲线加密算法(elliptic curve cryptography)的实现,进而覆盖到所有其提供了JRE 的平台(以前只在Solaris 上可用)。M5 还包括了一系列性能相关的强化,比如一个新的更快的合并排序算法,它是Josh Bloch 根据Python 的“TimSort”改写而来的。在VM 层,逃逸分析和把64 位指针压缩为32 位都是HotSpot VM 默认支持的了,这样不仅降低了内存的消耗,而且提高了性能。

还有很多其他的修改,完整的列表可以参看这里

原以为M5 是Java 7 第一个功能完备的版本,但实际上在某些方面还有差距。下表详细列出了M5 包含的主要特性。

vm 压缩的 64 位对象指针
G1 垃圾收集器(Garbage First GC)
JSR 292:VM 对非 Java 语言(动态调用)的支持 lang JSR 308:Java 类型的注解 core 升级类加载器架构
关闭 URLClassLoader 的方法
Unicode 5.1
JSR 166y:并发性和集合的更新
JSR 203:更多针对 Java 平台的新 I/O API(NIO.2)
SCTP(Stream Control Transmission Protocol——流控制传输协议)
SDP(Sockets Direct Protocol——套接字直连协议)
Elliptic-curve cryptography(ECC——椭圆曲线加密算法) client 向前兼容 6u10 部署特性
针对 6u10 图形特性的新平台 API
Swing 的 Nimbus 外观还需要完成的主要特性有:

  • 模块化(Jigsaw 项目)及支持模块化编程的相关语言和虚拟机(JSR 294)。
  • Coin 项目中的自动资源管理、集合文本、JSR-292 的语言级支持,以及简化变长参数方法的调用等。
  • 原来要在 M4 发布的 XML 堆栈更新。
  • Java2D 的 XRender 管道。
  • dual-pivot 快速排序的实现。

这些特性中有一些已经差不多快完成了,比如 dual-pivot 快速排序代码极可能在 M6 的第一个构建里出现,也就是 2009 年 12 月 3 日的 build77 。其他的还有一些差距。Jigsaw 项目一直在进展但现在只有 Linux 下 alpha 版的 M5 二进制版本能下载。JSR 294 也还没有完,而且 Alex Buckley 在专家邮件组里建议不要再继续推进简单模块系统的提议了:

既然 Jigsaw 和 OSGi 最初都在 JCP 之外定义,JSR 294 不见得就是定义一个统一这两者的模块系统的最佳场所。这一设计将取两者的最小交集,虽然初衷很好,但这种妥协却让人不悦。由于专家组(EG)对简单模块系统提议并没有明确支持,我希望以后不要在这上面浪费时间了。

JDK7 还有很长的路要走,Sun 已经决定在日程中再加 3 个里程碑发布,并且把完成版推迟到 M8(2010 年 6 月 3 日)。这样就可以让 JDK7 发布版包含更多的其他特性,如 multi-catch 和以前谈到过的闭包,但是这样会把最终发布日期推迟6 个月,大概到2010 年9 月。

查看英文原文: JDK 7 Milestone 5 Includes Concurrency and Performance Updates, But Is Not Feature Complete

2009 年 11 月 29 日 06:092366
用户头像

发布了 42 篇内容, 共 14.3 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

Elasticsearch入门,看完又要会!慎点

比伯

Java 架构 面试 程序人生 架构师

WordPress中常用的8个函数

Sakura

4月日更

架构实战训练营

Nick~毓

Java架构速成笔记:七大专题,1425页考点,挑战P8岗

周老师

Java 编程 程序员 架构 面试

MVVP:一种基于状态的架构模式的设计与实现

行者

低代码平台选型的道与术

人称T客

架构实战营 模块一 作业

PB

架构实战营

两面翻转盒子案例(3d效果)

赫鲁小夫

4月日更

量化策略交易系统,马丁策略平台搭建

13823153121

架构学习模块一作业

架构实战营

字节跳动上亿级别秒杀系统优化,用这个方案可行吗?

Java架构师迁哥

情指行一体化平台建设,智慧公安可视化大数据分析系统开发

WX13823153201

新纪元·新生态!聚焦前沿科技,拥抱万物智联——2021开源科技节重磅来袭!

Geek_459987

涨薪15K,从小公司成功逆袭,拿到美团P2-3级offer(面经+心得)

Java架构师迁哥

我能斩获自己跳动offer,全靠在一周内肝完这426页阿里面试通关手册,

钟奕礼

Java 编程 程序员 架构 面试

匪夷所思?双非本末的我是如何六面阿里 --最终斩获Java岗P7offer

钟奕礼

Java 编程 程序员 架构 面试

阿里团队教科书:SpringBoot全优笔记,面面俱到太全了

Java架构师迁哥

IDEA实用快捷建

莫海华

你的Parquet该升级了:IOException: totalValueCount==0问题定位之旅

华为云开发者社区

sql spark ETL任务 Parquet totalValueCount

国产「网络安全」正稳步前进中!

Machine Gun

网络安全 信息安全 渗透测试 WEB安全 前端技术

HDFS的block块和副本机制

大数据技术指南

hadoop hdfs 4月日更

站在巨人的肩膀上!淘宝网Java千亿级并发系统架构设计笔记

Java架构追梦

Java 架构 亿级并发 淘宝网

2021最新分享阿里P6面经及心得

比伯

Java 架构 面试 程序人生 计算机

三顾茅庐,七面阿里,25k*16offer,还原我的大厂面经

周老师

Java 编程 程序员 架构 面试

四面字节斩获offer,二十不惑的年纪我的人生就这样第一次的走上了正轨,看到了前途希望与光明

钟奕礼

Java 编程 程序员 架构 面试

阿里的调优方案,不愧是业界最强,吹爆这份Java性能调优手册

Crud的程序员

Java 编程 程序员 架构 架构师

人民日报海外版:维护网络安全要有“软”“硬”两手

Machine Gun

Linux 网络安全 渗透测试 linux运维 WEB安全

我,第一次做项目经理,干赔了

四猿外

辽宁重点人员管控系统搭建,指挥调度系统搭建

13823153121

解决了这5大障碍,才能用好混合云!

浪潮云

混合云

MySQL-技术专题-Lock入门到精通

李浩宇/Alex

MySQL lock

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

JDK 7 M5包含了并发性和性能更新,但功能并不完整-InfoQ