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

Java 基礎核心知識體系(二):包裝類、抽象與介面、單例、集合、多態、String 深度解析

     編輯:Java 綜合教學

Java 基礎核心知識體系(二)

本文系統整理 Java 基礎進階主題,涵蓋包裝類、抽象類與介面、單例模式、套件管理、繼承與多態、String 核心機制、this/static、常見易混淆概念辨析,助你建立扎實的知識骨架。

十一、包裝類 Integer

基本型別 int 對應的參考型別 Integer 提供豐富工具方法:

  • Integer.MAX_VALUE / MIN_VALUE:取得 int 範圍邊界。
  • toBinaryString()、toHexString():轉二進位/十六進位字串。
  • 自動裝箱/拆箱:JDK 5+ 支援 Integer i = 10; 與 int n = i; 直接轉換。

關鍵差異:int 預設值 0,儲存於堆疊;Integer 預設值 null,物件在堆積區,支援 null 語意。

十二、抽象類

特徵

  1. 含 abstract 方法的類必須宣告為抽象類。
  2. 抽象類不可 new 實例,需由子類實作所有抽象方法後才能實例化。
  3. 子類若未完全實作,仍為抽象類。

語法範例

abstract class Chinese {
    public abstract void show();
}
class Taiwanese extends Chinese {
    public void show() { System.out.println("Taiwanese"); }
}

十三、介面

定義與規則

  • 介面中成員隱含 public static final(常數)與 public abstract(方法)。
  • 類別用 implements 實作介面,可多實作(implements A, B)。
  • 介面可多重繼承(interface C extends A, B)。
  • JDK 8+ 支援 default、static、private 方法。

十四、單例設計模式

核心三步驟

  1. 建構子 private,防外部實例化。
  2. 靜態私有實例變數。
  3. 提供 public static 取得實例方法。

兩種經典寫法

模式特點程式碼骨架
餓漢式類載入時即建立,線程安全,可能浪費資源private static final Instance INSTANCE = new Instance();
懶漢式首次呼叫才建立,需雙重檢查鎖定保證線程安全if (instance == null) { synchronized { if (instance == null) instance = new Instance(); } }

應用場景:資源控制器、配置管理器、連線池等需全域唯一存取點的場合。

十五、套件

  • 套件名慣用網域反寫(com.company.project),全小寫。
  • package 必須為非註解第一行;import 引入類別。
  • java.lang 自動匯入;常用套件:java.util、java.io、java.sql、javax.swing 等。

十六、繼承

初始化順序(關鍵考點)

  1. 父類靜態區塊/靜態欄位
  2. 子類靜態區塊/靜態欄位
  3. 父類實例區塊/實例欄位
  4. 父類建構子
  5. 子類實例區塊/實例欄位
  6. 子類建構子

十七、多態

向上轉型與綁定

  • 向上轉型:Super s = new Sub(); 安全但失去子類新增方法。
  • 靜態綁定(Overload):編譯期依參數列表決定。
  • 動態綁定(Override):執行期依實際物件型別決定。

設計原則

  • 開閉原則:對擴充開放、對修改關閉。
  • 里氏替換:父類出現處皆可用子類替換。

十八、String 核心機制深度解析

建立與常量池

String s1 = "abc";           // 常量池
String s2 = new String("abc"); // 堆區新物件
String s3 = "a" + "b";       // 編譯期優化 -> 常量池 "ab"
String s4 = s1 + "b";        // 執行期 StringBuilder -> 堆區新物件

常用操作

  • 比較:equals() 比內容,== 比參考;equalsIgnoreCase() 忽略大小寫。
  • 查找/截取/分割/替換/連接:indexOf()、substring()、split()、replace()、concat()/+。
  • 不可變性:每次操作產生新物件,頻繁修改建議用 StringBuilder(非線程安全)或 StringBuffer(線程安全)。

十九、this 關鍵字

  • 建構子中:this.field = param 區分同名欄位。
  • 方法中:this.method() 呼叫本類其他方法。
  • 傳遞當前物件:other.doSomething(this)。

二十、static 靜態成員

  • 靜態變數:屬於類,所有實例共享,類載入時初始化,儲存於方法區。
  • 靜態方法:ClassName.method() 直接呼叫;不可直接存取非靜態成員(無 this 參考)。

二十一、易混淆概念辨析表

比較項關鍵差異
break / continue / returnbreak 跳出迴圈;continue 結束本輪進入下輪;return 結束方法並回傳值
類變數 / 實例變數 / 區域變數定義位置、生命週期、初始化規則、存取方式均不同
this / superthis 從子類向上找;super 直接找父類;this() 呼叫本類建構子,super() 呼叫父類建構子
String / StringBuffer / StringBuilder不可變 vs 可變;線程安全 vs 非線程安全
equals / ==基本型別只能 ==;包裝類/String equals 比內容,== 比參考;未覆寫 equals 時同 ==
Overload / Override同類同名不同參數 vs 子類覆寫父類同名同參數;前者編譯期綁定,後者執行期綁定
int / Integer基本型別 vs 參考型別;預設 0 vs null;速度 vs 功能豐富
類 / 抽象類 / 介面實例化能力、方法型別、繼承/實作規則、多重實作支援度不同
final / finally / finalize修飾符(不可變/不可繼承/不可覆寫) vs 異常塊(必執行) vs GC 回收前呼叫

二十二、不可共存修飾符組合

  • super() 與 this():皆須置建構子首行。
  • final 與 abstract:最終 vs 抽象,語意衝突。
  • abstract 與 private:抽象方法需被覆寫,private 不可被覆寫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved