java經常使用實體類、集合類

 1:String類,字符串是常量,他們的值在建立以後不能更改,能夠共享。java

  equals()用來比較兩個字符串的值,==只有當這兩個實例指向同一個字符串對象才返回true數組

2:線程安全的可變字符串類StringBuffer,主要操做是append()和insert()。緩存

3:可變字符串類StringBuilder,不保證同步,用在字符串緩存區被單個線程使用的時候,比StringBuffer快。安全

三者的使用狀況:多線程

a)若是偶爾對剪子的字符串常量進行拼接,那麼可使用String,他足夠簡單並且輕量級。app

b)若是須要常常對字符串進行拼接、累加操做,使用StringBuffer或者StringBuilder框架

c)單線程使用StringBuilder,他比StringBuffer快,多線程中選後者,他是線程安全的。ide

 

4:集合類Collection,表明多個對象的集合,分爲工具

a)Queue類:隊列類,先進先出的隊列ui

b)List類,列表類,元素有序,且容許重複

c)Set類,集合類,元素能夠有序也能夠無序,不容許重複。

映射類Map:存儲多個鍵值對。

5:Collections與Collection的區別:前者是對後者集合類進行各類操做的服務類。

a)Collection是個java.util下的接口,它提供了對集合對象進行基本操做的通用接口方法,collection接口在java類庫中有不少具體的實現,它的意義是爲各類具體的集合提供了最大化的統一操做方式。

b)conllections是個java.util下的實體類,它包含各類有關集合操做的靜態方法,提供一系列靜態方法實現對各個集合的搜索、排序、線程安全化等操做,就像一個工具類,服務於java的Collection框架。

6:列表類List

a)LinkedList鏈式訪問,以指針相連,適合於在鏈表中間須要頻繁進行插入和刪除操做。

b)ArrayList相似數組的形式,按照序號存儲,隨機訪問速度很是快。

c)Vector向量按照各元素序號存儲,數組大小能夠動態增加,對於大容量數據存儲效率較高。

d)Stack堆棧,先進後出的數組。

7:這些類的對比與選擇:

若是涉及到堆棧隊列等操做,應該考慮List中的stack,queue

對於須要快速插入刪除元素,應該使用linkedlist

若是須要快速隨機訪問元素,應該選用arraylist

若是程序在單線程環境中,選用非同步類

若是在多線程中,選用同步類vector、stack和hashtable以及其子類。

8:map選擇

hashtable和hashmap相似,可是hashtable是同步的,可是hashmap容許null來做爲key和value值。

weakhashmap是一種改進的hashmap,他對key進行弱引用,若是一個key再也不被外部引用,則被gc回收。

相關文章
相關標籤/搜索