【Java筆記】Java歷史版本新特性(JDK5~JDK13)

Java歷史版本新特性(JDK5~JDK13)


嗯,啊,額,只要是收集整理資源,當然很多不瞭解的東西和功能,我是很自然的就忽略掉了。改進畢竟很多,我只是列出了相對比較直觀的改進


版本演進


Java 5

  • 引入泛型功能(僞泛型)
  • 增強循環,可以使用迭代循環,Iterator
  • 支持自動裝箱自動拆箱
  • 支持類型安全的枚舉
  • 支持可變參數
  • 支持靜態引入
  • 支持元數據(註解)功能
  • 引入Java Instrumentation


Java 6

  • 支持腳本語言
  • 引入JDBC 4.0 API
  • 引入Java Compiler API
  • 支持可插拔註解


Java 7

  • 支持了switch語句以String作爲條件,至此已支持4中基本類型(byte, char , short ,int),2種對象類型(枚舉,String)
  • 優化增強了泛型對象類型推斷
  • 支持了在一個語句塊中捕獲多種異常,既一個catch,可以|多個異常
  • 支持try-with-resources語法,自動爲資源類進行關閉,而無需finally進行
  • 引入Java NIO2開發包,支持了AIO
  • 支持了數值的二進制表示方式,比如0b1010000, 以前只能8,10,16進制的表示
  • 鑽石型語法,省略類型參數的聲明
  • 支持了動態語言


Java 8

  • 支持lambda表達式
  • 支持集合的Stream流處理
  • 支持Functional函數式接口
  • 對各個類支持了很多對應的lambda增強方法
  • 增強接口,支持了接口的默認和靜態的具體方法
  • 支持LocalDate等時間包,以改進原有Date
  • 支持Optional來改進Null值的處理
  • 優化了HashMapConcurrentHashMap


Java 9

  • 支持Java平臺級模塊系統,既模塊化
  • 支持了JShell,既類似node.js, python一樣的命令行工具,對待簡單的東西,可以直接命令測試
  • 改進Javadoc, 使得Javadoc可以搜索
  • 支持了List.of(), Set.of(), Map.of()的方式初始化不可變集合,省略了大量代碼,語法糖
  • 改進的Stream API,比如ofNullable(),dropWhile(),takeWhile()等
  • 增強接口,支持了私有接口具體方法,補充了Java8默認和靜態方法的支持
  • G1垃圾收集器作爲默認的垃圾收集器,並標註CMS爲過時收集器
  • 引入了響應式流Reactive Streams API, 支持了響應式編程
  • 支持了HTTP/2客戶端


Java 10

  • 支持了局部變量的類型推導,支持了局部變量的var聲明
  • 優化改進了G1垃圾回收器,採用並行化mark-sweep-compact算法


Java 11

  • 簡化了啓動單個源代碼文件的方法,使得小白命令式編譯運行Java文件變成更加簡單,java Helloworld.java 即可
  • 增加支持了一個叫Epsilon的低開銷垃圾收集器
  • 增加支持了一個叫ZGC(Z Garbage Collector)的可伸縮低延遲垃圾收集器, 相比G1,停頓時間有了很大的改進,穩定在10ms以下
  • 重寫了HttpClient,提供了新的標準化HttpClient API, 以後不再需要引入apache包的HttpClient或是okhttp就能支持高性能的網絡編程
  • 增加了對TLS 1.3的支持
  • 允許了飛行記錄器進行商用下的使用
  • 更好的支持了動態語言,在JVM層面增加了invokedynamic指令
  • 支持了在lambda內部使用var聲明局部變量


Java 12

  • 引入了一個叫Shenandoah 低停頓的實驗性垃圾收集器
  • 改進了G1垃圾收集器
  • 引入了實驗性的預覽版Switch語句優化,可以省略break語句,合併多個case
  • 引入了JVM的常量API, 有助於一些分析的實現


Java 13

  • 增強優化了ZGC垃圾收集器, 歸還未使用的堆內存給操作系統
  • 將Java12引入的預覽版Switch語法提爲正式版,使得Switch的使用更加的順滑和流暢
  • 支持了"""字符串塊功能
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章