02 2012 檔案
摘要: 索引
1.數(shù)據(jù)量大以及訪問(wèn)量很大的表,必須建立索引
2.不要在建立了索引的字段上做以下操作
閱讀全文
摘要: HashSet概要:
采用HashMap存儲(chǔ),key直接存取值,value存儲(chǔ)一個(gè)object
存儲(chǔ)的key值是唯一的
HashSet中元素的順序是隨機(jī)的,包括添加(add())和輸出都是無(wú)序的
代碼就不具體詳解了,主要就是通過(guò)封裝HashMap組成
閱讀全文
摘要: 1.Hashtable概要:實(shí)現(xiàn)Map接口的同步實(shí)現(xiàn)
線程安全
不能存儲(chǔ)null到key和value
HashTable中hash數(shù)組默認(rèn)大小是11,增加的方式是 old*2+1。HashMap中hash數(shù)組的默認(rèn)大小是16,而且一定是2的指數(shù)
閱讀全文
摘要: HashMap概要:
線程不安全,線程安全請(qǐng)使用Hashtable
效率較好
提供null作為key或者value
閱讀全文
摘要: 1. Vector概要:
默認(rèn)長(zhǎng)度為10
/**
* Constructs an empty vector so that its internal data array
* has size {@code 10} and its standard capacity increment is
* zero.
*/
public Vector() {
this(10);
}
底層采用數(shù)組存儲(chǔ):protected Object[] elementData;
線程安全
查詢效率比較高,比較適用于查詢
擴(kuò)容的長(zhǎng)度為初始長(zhǎng)度的一半,建議初始化的時(shí)候設(shè)置已知的長(zhǎng)度,免得容器自己去擴(kuò)容,浪費(fèi)空間以及效率
與ArrayList基本一樣,除了所有操作資源的方法都加了synchronized,保證線程同步
這里的源代碼就不詳解了,具體請(qǐng)參考容器-數(shù)組-ArrayList詳解。
閱讀全文
摘要: 1. ArrayList概要:
默認(rèn)長(zhǎng)度為10
public ArrayList() {
this(10);
}
底層采用數(shù)組存儲(chǔ):private transient Object[] elementData;
transient表示數(shù)組elementData不需要通過(guò)serialization序列化傳輸
線程不安全,在多線程場(chǎng)景會(huì)出現(xiàn)問(wèn)題,可以考慮使用Vector或者Collections.synchronizedList同步該容器
查詢效率比較高,比較適用于查詢
擴(kuò)容的長(zhǎng)度為初始長(zhǎng)度的一半,建議初始化的時(shí)候設(shè)置已知的長(zhǎng)度,免得容器自己去擴(kuò)容,浪費(fèi)空間以及效率
閱讀全文