Java 6將退出大數(shù)據(jù)舞臺,再見Java 6!

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

Java 1.4到1.5的修改很大,在編譯compile-time 方面提升很大,Java 6在運行時runtime智能上做了優(yōu)化,Java 7的主要改進:模塊化。我們分析一下Java 7的主要修改:

近期大數(shù)據(jù)開源軟件非;钴S,包括hadoop生態(tài)系統(tǒng)和spark生態(tài)系統(tǒng)。從近期的一些發(fā)布release來看,大數(shù)據(jù)開源軟件逐漸廢棄對java 6的支持。

Hadoop生態(tài)系統(tǒng)

Hadoop最新版本2.7.0于上個月末發(fā)布,并宣稱:“這個版本的Hadoop已經(jīng)不支持JDK 1.6運行環(huán)境,只支持JDK 7+”。

Spark生態(tài)系統(tǒng)

近期,spark社區(qū)也非;钴S,討論是否應(yīng)該終止支持Java 6,經(jīng)過這幾天的討論,社區(qū)決定從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智能上做了優(yōu)化,Java 7的主要改進:模塊化。我們分析一下Java 7的主要修改:

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

* JVM 對動態(tài)語言的支持

* 更多新的 I/O APIs 即將完成,包括真正的異步I/O 和最終的真實的文件系統(tǒng) file system API – JSR 203

* 對XML本地語言支持. (可能的probable)

* Safe rethrow – 允許catch捕獲語句讓編譯器更加聰明的知道基于什么情況下重新throw什么內(nèi)容。

* Null dereference expressions – Null 和 ‘?’ syntax 比較,語法類似 Groovy… 讓開發(fā)者避免過多的空值驗證。

* 更好的類型推斷 Better type inference

* 多重捕獲Multi-catch

* JSR 296 – Swing 應(yīng)用框架 application framework – 這方面需要更簡單和簡潔。

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

* 升級的類加載class loader 架構(gòu);

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

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

* JavaFX

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

* 并發(fā)方面的細微調(diào)整 concurrency tweaks (JSR 166),更好的支持Multicore

* G1 垃圾收集器Garbage collector - 帶來更小的中斷時間,有希望替代 CMS (Concurrent mark sweep) GC

* 64 bit VM的壓縮指針Compressed pointer

* MVM-lite – 多個虛擬機能夠獨立運行應(yīng)用和允許用kill -9殺死java應(yīng)用。

關(guān)鍵詞:Java