List、Set、Map都是線程不安全的
底層是數組,傳的是一個Object泛型
初始值長度10,jdk8是空(采用懶加載機制)
擴容會變成10+10/2=15
ArrayList 是線程不安全的
ArrayList的故障現象
導緻原因
解決方法
優化建議
異常: 多個線程進行add可能會報<code>java.util.ConcurrentModificationException</code>異常 導緻原因: 多個線程同時寫入同一個位置 解決方法: 解決多線程并發寫入異常使用 優化建議: 1.new Vector<>() 2.Collections.synchronizedList(new ArrayList<>()); 3.new CopyOnWriteArrayList(); 建議是呀new CopyOnWriteArrayList();
初始值16
達到擴容條件就會變成<code>newCap = oldCap << 1</code>也就是原來的2倍
解決并發過程中線程不安全的方式是使用<code>Map<String,String> map= new ConcurrentHashMap<>();</code>
set也是不安全的和List一樣會報同樣的錯誤
Set的底層是<code>HashMap</code>
key是泛型E
value是Object
解決多線程不安全的方式是使用<code>Set set = new CopyOnWriteArraySet<>();</code>