Java 6将退出大数据舞台,再见Java 6!

2015-05-08 22:59:30来源:hadoop 123作者:

Java 1.4到1.5的修改很大,在编译compile-time 方面提升很大,Java 6在运行时runtime智能上做了优化,Java 7的主要改进:模块化。我们分析一下Java 7的主要修改:

近期大数据开源软件非常活跃,包括hadoop生态系统和spark生态系统。从近期的一些发布release来看,大数据开源软件逐渐废弃对java 6的支持。

Hadoop生态系统

Hadoop最新版本2.7.0于上个月末发布,并宣称:“这个版本的Hadoop已经不支持JDK 1.6运行环境,只支持JDK 7+”。

Spark生态系统

近期,spark社区也非常活跃,讨论是否应该终止支持Java 6,经过这几天的讨论,社区决定从Spark 1.5开始,不再支持Java 1.6!

(1)Spark 1.4.x(~ Jun 2015)会在Java 6,7,8上面工作;

(2)Spark 1.5+ (~ Sep 2015)只能在Java 7,8上面工作,不再支持Java 6!

Java 6与Java 7对比

Java 1.4到1.5的修改很大,在编译compile-time 方面提升很大,Java 6在运行时runtime智能上做了优化,Java 7的主要改进:模块化。我们分析一下Java 7的主要修改:

* Modularization 模块化– JSR 294 或者 Project Jigsaw

* JVM 对动态语言的支持

* 更多新的 I/O APIs 即将完成,包括真正的异步I/O 和最终的真实的文件系统 file system API – JSR 203

* 对XML本地语言支持. (可能的probable)

* Safe rethrow – 允许catch捕获语句让编译器更加聪明的知道基于什么情况下重新throw什么内容。

* Null dereference expressions – Null 和 ‘?’ syntax 比较,语法类似 Groovy… 让开发者避免过多的空值验证。

* 更好的类型推断 Better type inference

* 多重捕获Multi-catch

* JSR 296 – Swing 应用框架 application framework – 这方面需要更简单和简洁。

“小的”sun方面的修改有:

* 升级的类加载class loader 架构;

* XRender pipeline for Java 2D:是Open JDK ntegrators Challenge project项目;

* Swing 更新 – JXLayer, DatePicker, CSS styling 等;

* JavaFX

sun方面“快速”的修改,主要是性能更新:

* 并发方面的细微调整 concurrency tweaks (JSR 166),更好的支持Multicore

* G1 垃圾收集器Garbage collector - 带来更小的中断时间,有希望替代 CMS (Concurrent mark sweep) GC

* 64 bit VM的压缩指针Compressed pointer

* MVM-lite – 多个虚拟机能够独立运行应用和允许用kill -9杀死java应用。

关键词:Java