@
每一次JDK上新總有一群人炸開了鍋,什麼上新時間太快啦,根本來不及學呀,什麼的。
確實從Java9開始,往後Java團隊就像生產隊的驢一樣以每年兩版的量更新著Java的版本,目前為止Java15都已經問世了。
這一陣仗直接“勸退”了很多萌新。在剛開始學,還什麼都不懂的我看到這個更新速度的時候,直接嚇得瑟瑟發抖。當時就感覺,天啦擼,我Java8都還沒學完,java9、java10、java11等就跟買一送一似的出來了,這要學到什麼時候是個頭啊。
尤其是在看見很多萌新問,下載JDK要下載哪一版比較好的時候,有人開玩笑似的說下最新版……我心裡哇涼哇涼的。
拜託大佬們不要開這種玩笑啊啊啊,像我這種萌新會很受傷的——不過大佬們好像也看不到這篇文吧,就當我發牢騷好了。
初入Java坑,有那麼多版本的Java,想了解清楚自己到底該下什麼版本這個問題,首先得了解清楚LTS與非LTS的區別
LTS與非LTS
每一次去官網下載JDK的時候,當你進入到Java SE下載頁面的時候,就能看到頁面推薦的三個版本的JDK:最新版JDK、JDK11以及JDK8。尤其是JDK11旁邊還特地標了一個(LTS)
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 Java SE 支援路線圖裡面的原話。
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
引用或轉載請註明出處。