Java各個版本特性


Java 作為一門經久不衰的語言,已經發展了20多年,本文簡單羅列了各個版本的一些重要特性。大家可以根據自己公司需要,選擇合適的版本。

1. Java 13

發布時間:2019年3月

新特性:

  • switch 語法優化更新
  • 文本塊升級
  • 動態CDS檔案
  • 取消使用未使用的內存
  • 重新實現舊版套接字API
  • FileSystems.newFileSystem新方法
  • nio新方法
  • 核心庫/ java.time
  • 核心庫/ java.util中:I18N
  • 熱點/ GC
  • 安全庫/ java.security
  • 刪除功能

2. Java 12

發布時間:2019年3月

新特性:

  • Shenandoah:低暫停時間的 GC(實驗性功能)
  • JMH 基准測試
  • Switch 表達式(預覽功能)
  • JVM 常量 API
  • 只保留一個 ARM 64位實現(aarch64)
  • 默認類數據共享歸檔文件
  • G1的可中斷 mixed GC
  • 改進G1垃圾收集器,以便在不活動時將Java堆內存歸還給操作系統

3. Java 11

Java 11 是自 Java 8 后的首個長期支持版本,將支持到2026年!

發布時間:2018年9月

新特性:

  • 基於嵌套的訪問控制
  • 動態的類文件常量
  • 改進 Aarch64 Intrinsics
  • Epsilon 垃圾回收器,又被稱為"No-Op(無操作)"回收器
  • 移除 Java EE 和 CORBA 模塊,JavaFX 也已被移除
  • HTTP Client (Standard)
  • 用於 Lambda 參數的局部變量語法
  • 采用 Curve25519 和 Curve448 算法實現的密鑰協議
  • Unicode 10
  • 實現 ChaCha20 和 Poly1305 加密算法
  • 啟動單個 Java 源代碼文件的程序
  • 低開銷的堆分配采樣方法
  • 對 TLS 1.3 的支持
  • ZGC:可伸縮的低延遲垃圾回收器,處於實驗性階段
  • 棄用 Nashorn JavaScript 引擎
  • 棄用 Pack200 工具及其 API

4. Java 10

發布時間:2018年3月

新特性:

  • var 類型推斷
  • 將原來用 Mercurial 管理的眾多 JDK 倉庫代碼,合並到一個倉庫中,簡化開發和管理過程。
  • 統一的 GC 接口
  • G1 垃圾回收器的並行完整垃圾回收,實現並行性來改善最壞情況下的延遲。
  • 應用程序類數據 (AppCDS) 共享,通過跨進程共享通用類元數據來減少內存占用空間,和減少啟動時間。
  • ThreadLocal 握手交互。在不進入到全局 JVM 安全點 (Safepoint) 的情況下,對線程執行回調。優化可以只停止單個線程,而不是停全部線程或一個都不停。
  • 移除 JDK 中附帶的 javah 工具。可以使用 javac -h 代替。
  • 使用附加的 Unicode 語言標記擴展。
  • 能將堆內存占用分配給用戶指定的備用內存設備。
  • 使用 Graal 基於 Java 的編譯器,可以預先把 Java 代碼編譯成本地代碼來提升效能。
  • 在 OpenJDK 中提供一組默認的根證書頒發機構證書

5. Java 9

發布時間:2017年9月

新特性:

  • “JShell”的新工具
  • 完全支持 HTTP 2.0 並帶來新的 HTTP 客戶端,它會代替 HttpURLConnection —— 同時還會實現 HTTP 2.0 和 Web Socket。
  • 模塊化的 JVM,使之可以在內存有限的設備上運行。JVM 可以只運行那些應用程序需要的模塊和 API。
  • 輕量級的 JSON API
  • 智能 Java 編譯
  • 接口中引入私有方法。從 Java SE 9 開始可以在接口中使用 ‘private’ 關鍵字寫私有方法和私有靜態方法了。
  • 響應式流
  • 多分辨率圖像 API
  • 改進 GC (垃圾回收)
  • HTML5 Javadocs
  • 改進 Stream(流) API
  • 增強 @Deprecated 注解
  • 改進 Optional 類
  • 改進 CompletableFuture API

6. Java 8

發布時間:2014年3月

新特性:

  • 函數式接口
  • Lambda表達式
  • 方法引用
  • -接口的default方法和靜態方法
  • -Optional
  • Streams
  • Date和Time API
  • Type注解
  • Nashhorn JavaScript引擎
  • 並發計數器
  • Parallel操作
  • 移除PermGen Error
  • TLS SNI

7. Java 7

發布時間:2011年7月

新特性:

  • switch增加對String的支持
  • 在創建泛型對象時應用類型推斷;
  • try/catch 可以 catch 多個異常類型
  • 支持動態語言;
  • 支持try-with-resources;
  • 引入Java NIO.2開發包;
  • 數值類型可以用二進制字符串表示,並且可以在字符串表示中添加下划線;
  • 鑽石型語法;
  • Boolean類型反轉,空指針安全,參與位運算
  • Objects類增加避免空指針的equals方法
  • 對Java集合( Collections)的增強支持

8. Java 6

發布時間:2006年4月

新特性:

  • 支持腳本語言;
  • 引入JDBC 4.0 API;
  • 引入Java Compiler API;
  • 可插拔注解;
  • 增加對Native PKI(Public Key Infrastructure)、Java GSS(Generic Security Service)、Kerberos和LDAP(Lightweight Directory Access Protocol)的支持;
  • 繼承Web Services;

9. Java 5

發布時間:2004年10月

新特性:

  • 引入泛型;
  • 增強循環,可以使用迭代方式;
  • 自動裝箱與自動拆箱;
  • 類型安全的枚舉;
  • 可變參數;
  • 靜態引入;
  • 元數據(注解);
  • 新的線程模型和並發庫
  • 內省(introspector)

10. Java 1.4

發布時間:2004年2月

新特性:

  • XML處理;
  • Java打印服務;
  • 引入Logging API;
  • 引入Java Web Start;
  • 引入JDBC 3.0 API;
  • 引入斷言;
  • 引入Preferences API;
  • 引入鏈式異常處理;
  • 支持IPv6;
  • 支持正則表達式;
  • 引入Image I/O slot machine API。

11. Java 1.3

發布時間:2000年5月

新特性:

  • 引入Java Sound API;
  • jar文件索引;
  • 對Java的各個方面都做了大量優化和增強。

12. Java 1.2

發布時間:1998年12月

新特性:

  • 引入集合(Collection)框架;
  • 對字符串常量做內存映射;
  • 引入JIT(Just In Time)編譯器;
  • 引入對打包的Java文件進行數字簽名;
  • 引入控制授權訪問系統資源的策略工具;
  • 引入JFC(Java Foundation Classes),包括Swing 1.0、拖放和Java 2D類庫;
  • 引入Java 插件;
  • 在JDBC中引入可滾動結果集、BLOB、CLOB、批量更新和用戶自定義類型;
  • 在Applet中添加聲音支持。

13. Java 1.1

發布時間:1997年2月

新特性:

  • 引入JDBC(Java Database Connectivity);
  • 支持內部類;
  • 引入Java Bean;
  • 引入RMI(Remote Method Invocation);
  • 引入反射(僅用於內省)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM