近期大數據開源軟件非常活躍,包括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應用。

