首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 面試必考:十大經典核心題目深度解析

     編輯:Java 相關知識

第 1 題:final、finally、finalize 差異

  • final:修飾符。修飾類不可繼承、修飾方法不可覆寫、修飾變數不可變更(基本型值不變、引用型地址不變)。
  • finally:異常處理塊,無論是否拋出異常都會執行,用於資源釋放。
  • finalize:Object 方法,GC 回收前呼叫,用於清理系統資源,不建議依賴。

第 2 題:HashMap vs Hashtable

  • 皆實作 Map 介面。
  • HashMap:非同步、允許 null key/value、效能較好。
  • Hashtable:同步、不允許 null、較舊版 API。

第 3 題:String s = new String("xyz") 建立幾個物件?

兩個:字串常量池中的 "xyz" 與堆上新建的 String 物件 s。

第 4 題:sleep() vs wait()

  • sleep():Thread 靜態方法,釋放 CPU 但不釋放鎖,時間到進入就緒狀態。
  • wait():Object 實例方法,需在同步區塊中呼叫,釋放鎖並進入等待集合,需 notify/notifyAll 喚醒。

第 5 題:short s1 = 1; s1 = s1 + 1 錯誤?s1 += 1 錯誤?

  • s1 = s1 + 1 編譯錯誤:s1+1 提升為 int,需強轉 (short)。
  • s1 += 1 正確:複合賦值運算子隱含強轉。

第 6 題:Overload vs Override

  • Overload(重載):同類別中方法名相同、參數列表不同(類型/個數/順序),回傳型別可不同。
  • Override(覆寫):子類別覆寫父類別方法,簽名完全相同,回傳型別需相容(共變),拋出異常範圍不大於父類別。

第 7/10 題:Set 判斷重複依據?== vs equals()

  • Set 依賴 equals() 判斷元素相等(HashSet 先比 hashCode)。
  • == 比較引用地址;equals() 預設比引用,常被覆寫比較內容(如 String、Integer)。

第 8 題:Error vs Exception

  • Error:嚴重系統級問題(如 OutOfMemoryError),應用不應嘗試捕獲恢復。
  • Exception:程式設計或執行時可預期問題,分 checked(編譯期檢查)與 unchecked(RuntimeException)。

第 9 題:常見 RuntimeException 列舉

NullPointerException、IndexOutOfBoundsException、ClassCastException、IllegalArgumentException、ArithmeticException、ConcurrentModificationException 等。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved