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

Java 基礎核心知識體系總結(一):從對象模型到內存管理

     編輯:Java 綜合教學

前言

Java 作為面向對象語言的代表,「一切皆對象」不僅是口號,更貫穿於類設計、內存模型、垃圾回收等核心機制中。本文系統梳理 Java 基礎知識體系的第一部分,涵蓋對象創建、訪問控制、基本類型與包裝類、變量聲明及垃圾回收機制,為進階學習打牢地基。

一、類與對象:Java 程序的基本構建單元

1.1 類的定義與構成

public class ATypeName {
    // 字段(數據成員/屬性)
    private String name;
    private int age;
    
    // 構造方法
    public ATypeName(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    // 方法(成員函數/行為)
    public void sayHello() {
        System.out.println("Hello, " + name);
    }
}

類的兩大核心元素:

  • 字段:描述對象狀態,可為基本類型或引用類型
  • 方法:描述對象行為,由方法名、參數列表、返回值、方法體組成

1.2 對象的創建與使用

// 實例化對象:new 關鍵字調用構造方法
ATypeName obj = new ATypeName("張三", 25);
// 調用方法
obj.sayHello();

二、訪問控制:封裝性的核心體現

修飾符同類同包子類(異包)非子類(異包)
public✓✓✓✓
protected✓✓✓✗
default(無)✓✓✗✗
private✓✗✗✗

最佳實踐:字段優先 private,通過公有 getter/setter 暴露;方法按需暴露,內部輔助方法用 private。

三、基本類型與包裝類:跨越基本類型與對象的橋樑

3.1 八大基本類型

類別類型位數默認值包裝類
整數byte80Byte
short160Short
int320Integer
long640LLong
浮點float320.0fFloat
double640.0dDouble
字符char16'\u0000'Character
布爾boolean1(邏輯)falseBoolean

特殊類型:void 無返回值標識,包裝類 Void;高精度計算用 BigInteger/BigDecimal(不可變對象)。

3.2 自動裝箱與拆箱

// 裝箱:基本類型 → 包裝類
Integer num = 100;        // 編譯器自動轉為 Integer.valueOf(100)
// 拆箱:包裝類 → 基本類型
int val = num;            // 編譯器自動轉為 num.intValue()

// 緩存機制:-128 到 127 的 Integer/Long/Short/Byte/Character 會緩存
Integer a = 100, b = 100; // a == b 為 true(同一緩存對象)
Integer c = 200, d = 200; // c == d 為 false(新建對象),需用 equals 比較

3.3 常見陷阱

  • 空指針風險:包裝類可為 null,拆箱時需非空判斷
  • 性能開銷:頻繁裝箱/拆箱產生大量臨時對象,熱點路徑優先用基本類型
  • == 比較:基本類型比值,包裝類比引用,務必用 equals()

四、變量聲明與字符串處理

4.1 變量分類

  • 成員變量:類中方法外,有默認值,存堆內存
  • 局部變量:方法/代碼塊內,無默認值,必須顯式初始化,存棧內存
  • 靜態變量:static 修飾,屬於類,類加載時初始化,存方法區

4.2 字符串創建方式

// 字面量:常量池中復用
String s1 = "hello";
String s2 = "hello"; // s1 == s2 為 true

// new 對象:堆中新建
String s3 = new String("hello"); // s1 == s3 為 false
String s4 = new String("hello"); // s3 == s4 為 false

// 內容比較永遠用 equals()
s1.equals(s3); // true

五、垃圾回收機制:自動內存管理的守護者

5.1 核心原理

JVM 垃圾回收器(GC)監控堆中所有對象,判斷對象是否可達(從 GC Roots 開始搜索引用鏈),回收不可達對象內存。

5.2 GC Roots 包含

  • 虛擬機棧中引用的對象(局部變量表)
  • 方法區中類靜態屬性引用的對象
  • 方法區中常量引用的對象
  • 本地方法棧中 JNI 引用的對象

5.3 四種引用類型(強→弱)

  1. 強引用:Object obj = new Object(),寧願 OOM 也不回收
  2. 軟引用:SoftReference,內存不足時回收,適合緩存
  3. 弱引用:WeakReference,GC 掃描即回收,適合弱關聯映射
  4. 虛引用:PhantomReference,不影響生命週期,配合引用隊列跟蹤回收

5.4 常見 GC 算法

  • 標記-清除:產生碎片
  • 標記-整理:無碎片,需移動對象
  • 複製算法:新生代適用,內存利用率 50%
  • 分代收集:新生代(複製)+老年代(標記-整理/並發標記)

總結

掌握對象模型、訪問控制、類型系統與內存管理,是寫出高質量 Java 代碼的前提。下一篇將深入講解集合框架、異常處理、泛型與反射等進階核心知識點。

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