java 雜湊表和執行緒安全

handawei_5發表於2010-07-09

java優化程式設計-雜湊表類:

執行緒安全的雜湊表類:
java.util.Vector/java.util.Hashtable
非執行緒安全的雜湊表類:
java.util.ArrayList/java.util.HashMap
在需要做執行緒同步以及要求執行緒安全的場合,開發人員應儘量使用執行緒安全的雜湊表類;
在不需要執行緒安全的場合,為了提高系統效能,開發人員應儘量選用非執行緒安全的雜湊表類;
因為執行緒安全的雜湊表會將原本可以並行處理的多執行緒進行排隊,將轉化為序列處理,從而導致系統效能下降。

ArrayList類可以通過下列方法標識成執行緒安全的類:
List list = Collections.synchronizedList(new ArrayList());

 

-----------------------------------------

java優化程式設計-ArrayList與LinkedList:

ArrayList(陣列物件)與LinkedList(連結串列物件)是java中的兩個專門用來處理資料元素列表的類。
這兩個類在效能特性方面存在較大差別,差別源於它們不同的儲存結構。
ArrayList是通過內部資料結構Object[]實現的;
而LinkedList是通過將一系列的內部記錄連線在一起實現的。
它們效能的差異使它們擁有各自不同的適用場合。
當需要在某個位置新增一個新元素時,應該使用LinkedList來提高系統效能。
因為當在ArrayList的某個位置新增一個新元素時,系統會把此位置之後的所有元素向後推移,這個動作相當耗時。
而在LinkedList的某個位置新增一個新元素時,系統只需給此新元素新增一個與相鄰物件的引用連線,這個動作相當廉價。
ArrayList適用在查詢某個已存在元素的場合。
--------------------------------------------------------

java優化程式設計-瞬間值:

在做遠端方法呼叫(RMI)應用開發時,將傳遞物件中不需要的屬性標記為“瞬間值”,使其不被傳遞,來節約網路開銷,
提高傳輸速度,提高系統效能,並且還可以節約呼叫端執行環境的記憶體資源。

----------------------------------------------------------------------------------------

設定ArrayList初始化容量: 

如果有一個很大的陣列,並且你已經預料到此陣列會變的異常龐大,那麼這裡給出一個方法用來提高新增新元素的速度,做好初始化操作。
呼叫ArrayList物件中的ensureCapacity(int size)方法;

============================================

 

 

相關文章