JDK 1 8 的一些新特性

2022-09-09 11:06:20 字數 998 閱讀 3990

1. 修改了jvm模型,用metaspace代替了永久代

2.介面中可以進行default實現。

增加了對lambda表示式的支援,新增了函式式介面@functionalinte***ce

函式式介面是乙個規範(除去重寫object類的方法,介面中只能有乙個抽象方法),在介面上加@functionalinte***ce,介面如果為非函式式介面,

就會報編譯錯誤。而函式式介面上不加此註解不會有任何問題。函式式介面可以用lambda表示式進行實現,

表示式中的內容即是對介面中那個唯一的抽象方法的實現。

增加了4種函式介面:function(有入有出,型別不定),predicate(返回值為boolean),supplier(無入參),consumer(無返回值)

3. 增加了時間處理類localdatetime 等,它是乙個final類,解決了之前時間類date,calendar等中的執行緒安全和操作繁瑣的問題。

localdatetime可以理解為乙個帶有時區資訊的時間點,它可以通過instant類來與date進行互相轉換。

localdatetime localdatetime=localdatetime.now()

date date = date.from(localdatetime.atzone( zoneid.systemdefault()).toinstant());

localdatetime localdatetime = new date().toinstant()

.atzone(zoneid.systemdefault())

.tolocaldatetime()

增加了一些併發介面和實現,如completablefuture,stampedlock,為concurrenthashmap新增了對流的支援。

4. collection 集合類介面增加了對stream(來自資料來源的元素佇列,不承載資料,只提供處理方式)的支援,

修改了hashmap和concurrenthashmap的實現。

JDK1 8的新特性

jdk1.8之前的介面不可以有方法體,但從jdk1.8開始,介面中的方法可以帶有方法體為什麼要新增這個特性?介面就是為了定義乙個標準,這個標準要求所有的實現類實現這些抽象方法。但存在某些方法,所有的實現類 都是一樣的,索性就把這些 挪到介面中。使用的方法?通過default來修飾這個方法public...

JDK1 8新特性簡介

可以用static default來定義介面方法 用default來定義普通方法,這樣子類就不用強制覆寫這個方法了。用static來定義靜態方法 專給lanmda使用的介面加上annotation functionalinte ce 其中只能有乙個方法 使用 引數 程式執行語句 引數 簡單返回 引數...

JDK1 8 新特性(全)

hashmap資料結構 在jdk1.8中對hashmap等map集合的資料結構優化。hashmap資料結構的優化 知識點 1 原來的hashmap採用的資料結構是雜湊表 陣列 鍊錶 hashmap預設大小是16,乙個0 15索引的陣列,2 如何往裡面儲存元素 首先呼叫元素的hashcode 方法,計...