java8新特性及其他

1、java的lamda表達式

函數式接口裏面,有且僅有一個方法(未實現),只有函數式接口才能用lamda表達式。否則就是java的標準普通接口。

書寫的簡單口訣:拷貝小括號,寫死右箭頭,落地大括號。

在java接口中可以用defaut或者static來進行函數的實現,兩者都可以定義多個函數。

2、集合類不安全

liist不安全:報錯異常是

java.util.ConcurrentModificationException

解決辦法:

new Vector<>()

Collections.synchronizedList(new ArrayList<>());

new CopyOnWriteArrayList()(--推薦,因爲是JUC裏面的東西)

set不安全:hashset的底層實現是hashmap,value值都是一個常量

解決:

CopyOnWriteArraySet<>();

map不安全,

解決:

new ConcurrentHashMap<>();

寫時複製:大致思想是在添加元素的時候進行拷貝,添加完之後,原引用指向新的容器。這樣的好處是可以對原容器進行併發的讀,而不需要加鎖。所以CopyOnWrite容器是讀寫分離的思想,讀和寫使用到不同的容器。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章