get和post的區(qū)別
Get請求發(fā)送的文本內(nèi)容大小有限制,而post請求沒有限制
Get請求的請求參數(shù)會出現(xiàn)在url路徑中,而發(fā)送post請求時,參數(shù)不會顯示在url路徑中
Get安全系數(shù)較低,但是效率較高。Post安全系數(shù)較高,但效率較低
Get請求只能發(fā)送字符串,post請求可以提交二進(jìn)制數(shù)據(jù)
List:1.可以允許重復(fù)的對象。
? 2.可以插入多個null元素。
? ? ? ? 3.是一個有序容器,保持了每個元素的插入順序,輸出的順序就是插入的順序。
? ? ? ? 4.常用的實(shí)現(xiàn)類有 ArrayList、LinkedList 和 Vector。ArrayList 最為流行,它提供了使用索引的隨意訪問,而 LinkedList 則對于經(jīng)常需要從 List 中添加或刪除元素的場合更為合適。
Set:1.不允許重復(fù)對象
? 2. 無序容器,你無法保證每個元素的存儲順序,TreeSet通過 Comparator? 或者 Comparable 維護(hù)了一個排序順序。
? ? ? ? 3. 只允許一個 null 元素
? ? ? ? 4.Set 接口最流行的幾個實(shí)現(xiàn)類是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基于 HashMap 實(shí)現(xiàn)的 HashSet;TreeSet 還實(shí)現(xiàn)了 SortedSet 接口,因此 TreeSet 是一個根據(jù)其 compare() 和 compareTo() 的定義進(jìn)行排序的有序容器。
1.Map不是collection的子接口或者實(shí)現(xiàn)類。Map是一個接口。
2.Map 的 每個 Entry 都持有兩個對象,也就是一個鍵一個值,Map 可能會持有相同的值對象但鍵對象必須是唯一的。
3. TreeMap 也通過 Comparator? 或者 Comparable 維護(hù)了一個排序順序。
4. Map 里你可以擁有隨意個 null 值但最多只能有一個 null 鍵。
5.Map 接口最流行的幾個實(shí)現(xiàn)類是 HashMap、LinkedHashMap、Hashtable 和 TreeMap。(HashMap、TreeMap最常用)
3.什么場景下使用list,set,map呢?
(或者會問為什么這里要用list、或者set、map,這里回答它們的優(yōu)缺點(diǎn)就可以了)
答:
1.如果你經(jīng)常會使用索引來對容器中的元素進(jìn)行訪問,那么 List 是你的正確的選擇。如果你已經(jīng)知道索引了的話,那么 List 的實(shí)現(xiàn)類比如 ArrayList 可以提供更快速的訪問,如果經(jīng)常添加刪除元素的,那么肯定要選擇LinkedList。
2.如果你想容器中的元素能夠按照它們插入的次序進(jìn)行有序存儲,那么還是 List,因?yàn)?List 是一個有序容器,它按照插入順序進(jìn)行存儲。
3.如果你想保證插入元素的唯一性,也就是你不想有重復(fù)值的出現(xiàn),那么可以選擇一個 Set 的實(shí)現(xiàn)類,比如 HashSet、LinkedHashSet 或者 TreeSet。所有 Set 的實(shí)現(xiàn)類都遵循了統(tǒng)一約束比如唯一性,而且還提供了額外的特性比如 TreeSet 還是一個 SortedSet,所有存儲于 TreeSet 中的元素可以使用 Java 里的 Comparator 或者 Comparable 進(jìn)行排序。LinkedHashSet 也按照元素的插入順序?qū)λ鼈冞M(jìn)行存儲。
4.如果你以鍵和值的形式進(jìn)行數(shù)據(jù)存儲那么 Map 是你正確的選擇。你可以根據(jù)你的后續(xù)需要從 Hashtable、HashMap、TreeMap 中進(jìn)行選擇。
什么是線程安全?線程安全是怎么完成的(原理)?
線程安全就是說多線程訪問同一代碼,不會產(chǎn)生不確定的結(jié)果。編寫線程安全的代碼是低依靠線程同步。