arraylist是我們在程式設計中經常用到的類,它實現了介面list,list介面繼承了collection介面。arraylist使用非常廣泛,在集合框架中舉重輕重。
...
// 成員變數
transient object[
] elementdata;
...public
arraylist
(int initialcapacity)
else
if(initialcapacity ==0)
else
}
public boolean add
(e e)
private
void
ensurecapacityinternal
(int mincapacity)
private
void
ensureexplicitcapacity
(int mincapacity)
private
void
grow
(int mincapacity)
// 該方法總的來說就是獲取刪除元素位置index
public boolean remove
(object o)
}else
}return
false
;}
private
void
fastremove
(int index)
arraylist為執行緒不安全的,主要體現在擴容的時候。我們假設乙個場景,當arraylist容量只剩1的時候,併發來了2個請求同時進行add(e)
,if (mincapacity - elementdata.length > 0)
會都判斷為false,可以進行元素插入時,就會出現陣列越界異常。 IsPostBack深入分析
1 ispostback 介紹 ispostback是 page類有乙個 bool型別的屬性,用來判斷針對當前 form的請求是第一次還是非第一次請求。當 ispostback true時表示非第一次請求,我們稱為 postback,當 ispostback false時表示第一次請求。在 asp....
深入分析ConcurrentHashMap
再多執行緒的情況下,如果使用hashmap,就會導致死迴圈,導致cpu利用率接近100 所以如果是併發的情況不要使用hashmap 導致死迴圈主要是這段 當在多執行緒的情況由於沒有同步導致,著段 在擴容的時候會執行 do while e null 執行緒安全的hashtable 容器 hashtab...
深入分析malloc
本文大量參考了如何實現乙個malloc這篇文章。任何乙個用過或學過c的人對malloc都不會陌生。大家都知道malloc可以分配一段連續的記憶體空間,並且在不再使用時可以通過free釋放掉。但是,許多程式設計師對malloc背後的事情並不熟悉,許多人甚至把malloc當做作業系統所提供的系統呼叫或c...