@
每一次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
引用或轉載請注明出處。