協程原理深度剖析

V: ititit111222333

協程原理深度剖析

1.Cl lections.sort排序內部原理在Java 6中Arrays.sort(和Col ctions.sort(使用的是MergeSort, 而在Java 7中, 內部實現換成了Tim Sort, 其對對象間比較的實現要求更加嚴格2.hashMap原理, java 8做的改變從結構實現來講, HashMap是數組+鏈表+紅黑樹(JDK 1.8增加了紅黑樹部分) 實現的。HashMap最多隻允許條記錄的鍵爲null, 允許多條記錄的值爲null。HashMap非線程安全。Concurrent HashMap線程安全。解決碰撞:當出現衝突時,運用拉鍊法,將關鍵詞爲同義詞的結點鏈接在一個單鏈表中,散列表長m,則定義一個由m個頭指針組成的指針數組T,地址爲i的結點插入以T(I) 爲頭指針的單鏈表中。Java 8 中,衝突的元素超過限制(8) , 用紅黑樹替換鏈表。3.String和StringBuilder的區別1)可變與不可變:String不可變, 每一次執行“+”都會新生成一個新對象,所以頻繁改變字符串的情況中不用String, 以節省內存。2) 是否多線程安全:StringBuilder並沒有對方法進行加同步鎖, 所以是非線程安全的。StringBuffer和String均線程安全。4.Vector與Array的區別1) ArrayList在內存不夠時默認是擴展50%+1個, Vector是默認擴展1倍。2) Vector屬於線程安全級別的, 但是大多數情況下不使用Vector, 因爲線程安全需要更大的系統開銷。5.HashMap與Hashtable的區別1)歷史原因:Hashtable繼承Dictonary類, HashMap繼承自abstract Map 2)HashMap允許空的鍵值對, 但最多隻有一個空對象, 而HashTable不允許。3)HashTable同步, 而HashMap非同步, 效率上比HashTable要高6.Conn current HashMap和hashtable比較(兩個線程併發訪問map中同一條鏈, 一個線程在尾部刪除,一個線程在前面遍歷查找,問爲什麼前面的線程還能正確的查找到後面被另一個線程刪除的節點)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章