第一部分 Java SE基礎(2)html
1.8 Session 和 COOKIEjava
1.session 和 cookie 區別數組
cookie 是Web服務器發送給瀏覽器的一塊信息。瀏覽器會在本地文件中給每個 Web服務器存儲 cookie。之後瀏覽器在給特定的 Web 服務器發請求的時候,同時會發送全部爲
該服務器存儲的 cookie。下面列出了 session 和 cookie 的區別補充:瀏覽器
1.不管客戶端瀏覽器作怎麼樣的設置,session 都應該能正常工做。客戶端能夠選擇禁用cookie,可是,session 仍然是可以工做的,由於客戶端沒法禁用服務端的 session。安全
2.在存儲的數據量方面 session 和 cookies 也是不同的。session 可以存儲任意的 Java 對象,cookie 只能存儲 String 類型的對象。
1.9 equls 和 == 的區別服務器
注意:equals 方法不能用於基本數據類型的變量,若是沒有對 equals 方法進行重寫,則比較的是引用類型的變量所指向的對象的地址。cookie
1.10 ArrayList和LinkedList的區別?session
ArrayList底層使用的是數組,LinkedList使用的是鏈表編碼
數組具備索引,查詢特定的元素比較快,而插入和刪除,修改比較慢 (數組在內存中是一塊連續的內存,若是插入或刪除時須要移動內存)spa
鏈表不要求內存時連續的,在當前元素中存放下一個或上一個元素的地址,查詢時須要從頭開始,一個一個地找,查詢效率低,而插入時不須要移動內存,只須要改變引用指向便可。因此插入或刪除效率高
ArrayList適用於查詢比較多,可是插入和刪除比較少的狀況。
而LinkedList使用在查詢比較少,可是插入和刪除比較多的狀況。
1.11 HashMap和HashTable的區別?
1.HashMap和HashTable均可以使用來存儲key-value的數據。
2.HashMap是能夠吧null做爲key或者value的,而hashTable是不能夠的。
3.HashMap是線程不安全的,效率較高。HashTable是線程安全的,效率較低。
問題:我想線程安全又想效率高?使用CurrentHashMap
經過把整個Map分爲N個Segment(相似於HashTable),能夠提供相同的線程安全,但效率提高N倍,默認是提高16倍。
1.12 & 和 && 的區別
&運算符有兩種用法:(1)按位與;(2)邏輯與。
&&運算符是短路與運算。邏輯與跟短路與的差異是很是巨大的,雖然兩者都要求運算符左右兩端的布爾值都是true 整個表達式的值纔是 true。
&&之因此稱爲短路運算是由於,若是&&左邊的表達式的值是 false,右邊的表達式會被直接短路掉,不會進行運算。
不少時候咱們可能都須要用&&而不是&,例如在驗證用戶登陸時斷定用戶名不是 null 並且不是空字符串,應當寫爲 username != null &&!username.equals(""),兩者的順序不能交換,更不能用&運算符,
由於第一個條件若是不成立,根本不能進行字符串的 equals 比較,不然會產生 NullPointerException 異常。
注意:邏輯或運算符(|)和短路或運算符(||)的差異也是如此。
1.13 是否能夠繼承 String
String 類是 final 類,不能夠被繼承。
繼承 String 自己就是一個錯誤的行爲,對 String 類型最好的重用方式是關聯關係(Has-A)和依賴關係(Use-A)而不是繼承關係(Is-A)。
1.14 值傳遞與引用傳遞
值傳遞是對基本型變量而言的,傳遞的是該變量的一個副本,改變副本不影響原變量.
引用傳遞通常是對於對象型變量而言的,傳遞的是該對象地址的一個副本, 並非原對象自己 。通常認爲,java 內的傳遞都是值傳遞. java 中實例對象的傳遞是引用傳遞。
1.15 字節流 字符流
InputStreamReader 類是從字節流到字符流的橋樑:它讀入字節,並根據指定的編碼方式,將之轉換爲字符流。
參考文章:與http://www.javashuo.com/article/p-gevfeaxe-mb.html參考相同