你可能不知道的java14新特性
新特性一、簡化instanceof
PS:如果大家在學習過程中遇到什麼問題,或者缺乏相關的學習資料,可檢視我的公告欄獲取,有問題隨問隨答,還有我這段時間整理的一些Java學習手冊,面試題,開發工具,PDF文件書籍教程,需要的話都可以免費分享給大家。
新特性二、改進NullPointerException
jdk14中這個新特效能夠告訴你到底是那個方法導致空指標異常,而再jdk14以前則只會告訴你哪一行程式碼報空指標異常。如果遇到鏈式呼叫的程式碼則不能確定到底是那個環節導致了異常
再程式執行的時候需要新增一行引數:-XX:+ShowCodeDetailsInExceptionMessages
可能後期版本中就會將其作為預設引數,但再java14中需要新增這個引數才能使用這個新特性
新特性三、Rocord (預覽特性、後期版本一定會被確定下來)
record的出現是為了解決java囉嗦的用來作為資料的承載類(entity層),例如get、set、toString等
方法
如下定義程式碼
編譯後就
成員屬性是final的只有get方法,與以前的不同採用變數名作為get方法的方法名
如下示例程式碼
record注意點
record可以定義靜態的屬性、靜態的方法、構造方法、例項方法
- 如果宣告非靜態的屬性則會報語法錯誤
2.不可以將record定義的類宣告為abstract的
下面的定義不符合語法
3.不可以給record定義的類宣告顯式的父類(非Record類)下面的定義不符合語法
新特性四、棄用ParallelScavenge (Young區的GC)與
SerialOld GC (Old區的GC)組合作為GC
這個組合的使用場景是擁有一個很大的Young區和一個很小的Old區
廢棄了parallel young generation GC與SerialOld GC的組合( -XX:+UseParallelGC與XX:-UseParallelOldGC配合開啟),現在使用-XX:+UseParallelGC -XX:UseParallelOldGC
或者-XX:-UseParallelOldGC
Java HotSpot(TM) 64-Bit Server VM warning: Option UseParallelOldGC was deprecated in version 14.0 and will likely be removed in a future release.
新特性五、直接刪除CMS垃圾回收器,在Jdk9時就已經標記為廢除
CMS的弊端 :
- 會產生記憶體碎片,導致併發清除後,使用者執行緒可用的空間不足。
- 既然強調了併發(Concurrent),CMS收集器對CPU資源非常敏感
- CMS 收集器無法處理浮動垃圾(一邊回收、另一邊產生垃圾稱為浮動垃圾)
新特性六、ZGC(未來的垃圾回收器,STW在10ms以內)
使用方式