新手上路之如何選擇Java版本

@html


每一次JDK上新總有一羣人炸開了鍋,什麼上新時間太快啦,根原本不及學呀,什麼的。
確實從Java9開始,日後Java團隊就像生產隊的驢同樣以每一年兩版的量更新着Java的版本,目前爲止Java15都已經問世了。
這一陣仗直接「勸退」了不少萌新。在剛開始學,還什麼都不懂的我看到這個更新速度的時候,直接嚇得瑟瑟發抖。當時就感受,天啦擼,我Java8都還沒學完,java九、java十、java11等就跟買一送一似的出來了,這要學到何時是個頭啊。
尤爲是在看見不少萌新問,下載JDK要下載哪一版比較好的時候,有人開玩笑似的說下最新版……我內心哇涼哇涼的。
拜託大佬們不要開這種玩笑啊啊啊,像我這種萌新會很受傷的——不過大佬們好像也看不到這篇文吧,就當我發牢騷好了。

初入Java坑,有那麼多版本的Java,想了解清楚本身到底該下什麼版本這個問題,首先得了解清楚LTS與非LTS的區別java

LTS與非LTS

每一次去官網下載JDK的時候,當你進入到Java SE下載頁面的時候,就能看到頁面推薦的三個版本的JDK:最新版JDK、JDK11以及JDK8。尤爲是JDK11旁邊還特意標了一個(LTS)web

LTS

根據官方公佈的Oracle Java SE 支持路線圖描述可知:安全

對於Java SE 8以後的產品版本,Oracle將每三年指定一個版本做爲長期支持(LTS)版本,全稱Long Term Support,根據官方計劃一般在發佈後:提供五年的首要(高級)支持,五年以後提供三年的擴展(延長)支持。服務器

Java SE 8就是首個LTS版本,目前一樣爲LTS版本的還有2018年九月發佈的JDK11網絡

從2020年五月13日發佈的Java Platform Group產品管理博客中能夠得知Java SE 8的商業支持和更新從2025年3月擴展到至少2030年12月(比Java11的支持時間都長呢),並且2020年12月起,Oracle無限期擴展了我的(非商業)使用Java SE 8的更新的可用性。多線程

非LTS

非LTS版本被認爲是最新LTS版本的累積實施加強集合。一旦提供了新功能,任何之前的非LTS版本都將被視爲已取代。例如,Java SE 9是非LTS發行版,並當即被Java SE 10(也包括非LTS)取代,Java SE 10反過來又當即被Java SE 11取代。然而,Java SE 11是LTS發行版,所以即便Java SE 12已發佈,Oracle客戶仍將得到Oracle Premier Support和按期更新版本。oracle

↑是的,上面這段話是我扒的Oracle Java SE 支持路線圖裏面的原話。java-ee

2017年起Oracle就將Java SE的發佈頻率提升到每六個月一次,多在每一年的三月和九月,且非LTS的每一版的支持時間也只有六個月。學習

這是個什麼意思呢?或許這裏直接上一張圖會更直觀一些:

所謂沒有對比就沒有傷害,非LTS版更像是實驗版,每一版都會把上一版取代,就像實驗不停的優化的過程,直到出現了一版LTS。
它定然是總結了前幾版非LTS的優勢與不足,而推出的穩定版。LTS與LTS之間是不能被取代的,就像JDK8與JDK11之間的關係同樣,雖然JDK11在JDK8以後推出,但從目前爲止的Java SE支持路線圖能夠看出,顯然JDK8目前爲止更受歡迎。

固然說這一段話也並無讓你在JDK11與JDK8之間選擇JDK8的意思。相反,因爲Java的向下兼容能力,只要你使用的不是JDK8獨有的方法或類,在JDK11中同樣能運行。反正Java始終對我的(非商用)提供免費支持,我的以爲:咱們用於學習的話,天然是最新的LTS版最香咯。

Java CPU與PSU

簡單來講,CPU是奇數版,好比:Java SE 8u201。PSU是偶數版,好比:Java SE8u202。
那奇數版更好呢,仍是偶數版更好?
這一點官方資料Java CPU和PSU版本說明裏面已經講得很清楚了。它反覆反覆地說了,官方推薦奇數版。

毫無疑問,官方都這麼說了,就不要糾結了,奇數版——選它。

Java SE、Java EE、Java ME的區別

Java SE

Java SE(Java Platform Standard Edition,Java 平臺標準版)之前稱爲 J2SE,它容許開發和部署在桌面、服務器、嵌入式環境和實時環境中使用的 Java 應用程序。Java SE 包含了支持 Java Web 服務開發的類,併爲 Java EE 提供基礎,如 Java 語言基礎、JDBC 操做、I/O 操做、網絡通訊以及多線程等技術。

Java EE

Java EE(Java Platform Enterprise Edition,Java 平臺企業版)之前稱爲 J2EE。企業版本幫助開發和部署可移植、健壯、可伸縮且安全的服務器端 Java 應用程序。Java EE 是在 Java SE 基礎上構建的,它提供 Web 服務、組件模型、管理和通訊 API,能夠用來實現企業級的面向服務體系結構(Service Oriented Architecture,SOA)和 Web 2.0 應用程序。

Java ME

Java ME(Java Platform Micro Edition,Java 平臺微型版)之前稱爲 J2ME,也叫 K-JAVA。 Java ME 爲在移動設備和嵌入式設備(好比手機、PDA、電視機頂盒和打印機)上運行的應用程序提供一個健壯且靈活的環境。

Java ME 包括靈活的用戶界面、健壯的安全模型、豐富的內置網絡協議以及對能夠動態下載的聯網和離線應用程序。基於 Java ME 規範的應用程序 只需編寫一次就能夠用於許多設備,並且能夠利用每一個設備的本機功能。

關於Java SE、Java EE和Java ME是直接扒的HeavenZhi的碼農飛昇記

以上呢就是所有內容了,886

引用或轉載請註明出處。

相關文章
相關標籤/搜索