Java 8, b128和Java 8 RC2的第一个候选版本于2月出现,修复了新Comparator API中的一个严重缺陷,该缺陷中其新的thenComparing()
方法具有不必要的类型限制。 java.util.Comparator
的thenComparing()
方法不需要类型U
扩展java.lang.Comparable
,因为keyComparator用于比较提取的键对象。 Java 8 RC2版本还修复了Mac OS X上的读取权限问题。
关于Java即将发布的新版本的一些想法,在Java 8新闻中有介绍:可用的候选版本,新的原子序号和删除的实现 。
新的原子序号实现
除了Java 8的Lamdas和新的Date and Time API外,原子数实现也非常重要。 根据Palamino Labs原理的Drew Stephens的说法,Java 8的原子数实现速度相当快。 LongAdder
和DoubleAdder
被证明不那么浮华,但对于某些类的多线程应用程序来说非常重要。 它们是原子编号实现,在来自多个线程的争用中可为AtomicInteger
和AtomicLong
提供卓越的性能。
如Drew所示,使用单线程时AtomicLong
可能会更快一些,但是随着线程数量的增加, LongAdder
变得更快了。
剥离的实现被丢弃
剥离的实现是Java 8的一项建议功能,它允许Java SE的自定义实现与运行在其上的应用程序打包在一起。 马克·雷因霍尔德(Mark Reinhold)提出可以从Java SE 8中删除剥离的实现。正如他解释的那样,Java SE 8的剥离实现功能需要对TCK许可证进行一些不重要的更改,这将花费很多时间。 因此他们可以从Java SE 8中删除“剥离的实现”功能。这仅需要更改“规范”和TCK规则。 不过,他认为,剥离实现对于Java平台的未来很重要,这就是为什么应该在Java SE 9之前的版本中添加它。
翻译自: https://www.javacodegeeks.com/2014/02/java-8-news.html