1. ==和equals的區別
答:
- 基礎資料型別比較:只能使用==,比較值是否相等
- 參考資料型別比較:
- 沒有重寫equals方法:==和equals沒有區別,比較的都是參考是否指向了同一塊記憶體
- 重寫了equals方法:equals比較的是參考的物件內容是否相等(在javaBean規定中當重寫equals時必須重寫hashCode,兩個物件的equals相等,hashCode也必須相等,如果不相等就會造成相同的物件在HashSet存盤中存盤兩次)
2. 堆與堆疊的區別
答:1. 堆疊記憶體存盤的是區域變數,而堆記憶體存盤的是物體
2. 堆疊記憶體的更新速度要快于堆記憶體,因為區域變數的生命周期很短
3. 堆疊記憶體存放的變數生命周期一旦結束就會被釋放,而堆記憶體存放的物體會被垃圾回識訓制不定時回收
3.HashMap與HashSet的區別
答:
| HashMap | HashSet |
|---|---|
| 實作了Map介面 | 實作了Set介面 |
| 存盤鍵值對 | 僅存盤物件 |
| 呼叫put()向map中添加元素 | 呼叫add()方法向Set中添加元素 |
| HashMap使用鍵(Key)計算Hashcode | HashSet使用成員物件來計算hashcode值,對于兩個物件來說hashcode可能相同,所以equals()方法用來判斷物件的相等性,如果兩個物件不同的話,那么回傳false |
| HashMap相對于HashSet較快,因為它是使用唯一的鍵獲取物件 | HashSet較HashMap來說比較慢 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/141409.html
標籤:Java
上一篇:【JAVA SE基礎篇】57.執行緒禮讓、插隊、優先呼叫、守護執行緒與其他
下一篇:什么是空間擔保?
