為什么還有人用java8?
Java的升級迭代越來越快,Java 8之后,每半年差不多一個版本,讓人眼花繚亂,但其顛覆性的技術,對研發人員的吸引力不夠,做簡單的demo還好,但若單純追求技術,風險太高,如果使用于生產環境,就是更遙遠的事情了。
Java 9引入了模塊化系統,這是個看起來很美的特性,可是對程序員來說,這是一個破壞性的更新,因為JDK做了模塊化,但是很多第三方庫沒有做模塊化, 如果想讓自己的項目也模塊化,很有可能是一次不斷填坑的經歷,尤其在使用第三方庫的時候。Java 11的ZGC是個有吸引力的特性,它的設計目標是:支持TB級內存容量,GC暫停時間低(<10ms),對整個程序吞吐量的影響小于15%,確實挺讓人激動的!如果真的實現了,程序員就可以可勁兒造對象,而不用考慮GC了,可惜這仍然是個實驗性質的版本,缺乏技術支撐的穩定性和線上業務的高并發檢驗, 用起來還是需要一定勇氣的。
就個人觀點而言,保持線上 jdk 版本維持現狀的主要原因有:
1. java8之后,jdk升級迭代的周期縮短,所以同樣6個版本,java8到java14和java2到java8的性質是完全不同的。
2. Java8后的除了模塊化缺乏顛覆性的新特性,個人研究可以,生產環境使用動力不足。
3. jdk官方雖然宣稱向前兼容,但是由于java中大量框架的使用,無法保證升級后一定沒有問題,一旦有問題,排查成本異常高,引起的線上問題也是需要擔責的。
4. 線上運行的jdk版本經過了時間和業務的檢驗,在非特別必要的條件下,保持現狀是最好的選擇。新項目中可以使用新版本,但也需要和團隊技術棧保持一致,個人感覺jdk8已夠用。
總的來說,jdk升級是有風險的,包與包兼容向下兼容需要全量功能回歸檢驗,相較于錦上天花,升級帶來的兼容性和線上問題,讓研發感覺維持現狀是最好的選擇。
作者:夕陽雨晴,歡迎關注我的頭條號:偶爾美文,主流Java,為你講述不一樣的碼農生活。