近期大数据开源软件非常活跃,包括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应用。