1. 程式人生 > 實用技巧 >Java面試題彙總(持續更新)

Java面試題彙總(持續更新)

1. ==和equals的區別

答:

  • 基礎資料型別比較:只能使用==,比較值是否相等
  • 引用資料型別比較:
  • 沒有重寫equals方法:==和equals沒有區別,比較的都是引用是否指向了同一塊記憶體
  • 重寫了equals方法:equals比較的是引用的物件內容是否相等(在javaBean規定中當重寫equals時必須重寫hashCode,兩個物件的equals相等,hashCode也必須相等,如果不相等就會造成相同的物件在HashSet儲存中儲存兩次)
2. 堆與棧的區別

答:1. 棧記憶體儲存的是區域性變數,而堆記憶體儲存的是實體

2. 棧記憶體的更新速度要快於堆記憶體,因為區域性變數的生命週期很短


3. 棧記憶體存放的變數生命週期一旦結束就會被釋放,而堆記憶體存放的實體會被垃圾回收機制不定時回收