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

Java 核心基礎面試精華(二):JVM、JDK/JRE、關鍵字、類型、繼承、傳遞機制

     編輯:Java 綜合教學

1. JVM 與「平台無關性」

Java 源碼 → javac → 字節碼 → **JVM** 解釋/編譯執行。JVM 屏蔽底層硬體差異,實現「一次編譯,到處運行」。

2. JDK vs JRE

  • JRE:Java Runtime Environment,含 JVM + 核心類庫 + 瀏覽器插件,**運行** Java 程序。
  • JDK:Java Development Kit = JRE + 編譯器(javac) + 工具(javadoc, jdb 等),**開發** Java 程序。

3. static 關鍵字

  • 修飾成員變量/方法:**屬於類**,不屬於實例;無實例也可訪問(ClassName.staticMethod())。
  • static 方法不可覆蓋(Override):覆蓋基於運行時動態綁定,static 編譯期靜態綁定。子類同名 static 方法為**隱藏**。
  • static 變量類加載時初始化,全實例共享單份拷貝。

4. 數據類型與自動裝箱/拆箱

  • 8 大基本類型:byte, short, int, long, float, double, boolean, char。
  • 引用類型:類、介面、陣列、枚舉、注解。
  • 自動裝箱:基本類型 → 包裝類(int → Integer)。
  • 自動拆箱:包裝類 → 基本類型。

5. 方法重載 vs 覆蓋

特性重載覆蓋
發生位置同一類內子類 vs 父類
方法名相同相同
參數列表**必須不同****必須相同**
返回類型可不同必須相同/兼容
綁定時機編譯期靜態運行期動態

6. 構造函數

  • 新對象創建時調用;無定義則編譯器生成無參構造器。
  • 重載:同類多構造器,參數列表唯一。
  • 無複製構造函數(C++ 有):Java 不會自動生成;需手工實現 clone() 或拷貝構造器。

7. 繼承機制

  • 類:**單繼承**(一個父類)。
  • 介面:**多繼承**(多個父介面),實現功能擴展組合。

8. 介面 vs 抽象類

維度介面抽象類
方法隱式 public abstract(JDK 8+ 可有 default/static)可有抽象/非抽象方法
實現/繼承implements 多個extends 單個
變量隱式 public static final可非 final
構造器無有(供子類鏈調用)
實例化不可不可(含 main 可運行)

9. 值傳遞鐵律

**Java 僅支援按值傳遞(Call by Value)。**
  • 基本類型:傳值拷貝,修改不影響原變量。
  • 引用類型:傳**引用的拷貝**(地址值),方法內修改對象**內容**可見,但**重新賦值引用**不影響外部原引用。
void swap(int a, int b) { int t=a; a=b; b=t; } // 無法交換外部變量
void modifyObj(MyObj o) { o.setVal(2); } // 修改內容生效
void reassignObj(MyObj o) { o = new MyObj(); } // 外部引用不變
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved