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

Java 面向對象編程核心筆記:從封裝繼承到內存模型與 GC

     編輯:Java 綜合教學

Java 面向對象編程核心筆記

本文系統梳理 OOP 核心概念、類與對象建模、方法調用機制、變量作用域、String 特性、內存管理與垃圾回收,適合初學者建立完整知識體系,也供資深開發者快速回顧。

一、OOP 核心思想

維度結構化編程面向對象編程
核心公式程序 = 算法 + 數據結構程序 = 對象 + 對象 + …
優先級算法優先數據(對象)優先
關鍵點函數分解讓每個對象負責一組相關任務

二、四大特性

  1. 萬物皆對象:以對象建模現實實體。
  2. 消息驅動:程序由對象間發送消息(調用方法)協作。
  3. 獨立內存:每個對象擁有獨立堆內存,可組合為大對象。
  4. 多態接收:同類型對象可接收相同消息(介面/繼承)。

三、類與對象:概念、區別、聯繫

項目類對象
定義創建對象的模板/藍圖;同類對象的共同抽象類的實例化結果;真實存在的具體事物
關鍵特性靜態定義動態實例、狀態(屬性)+ 行為(方法)
代碼操作建模階段運行階段操作對象

聯繫:類定義對象 → 對象離不開類 → 類存在目的為實例化對象。

四、類的建模:抽象與封裝

  1. 定義類名
  2. 字段描述屬性(狀態)
  3. 方法描述行為(功能)

案例:學生類

public class Student {
    public String number, name, major;
    public int age;
    public void attendClass() { /* ... */ }
    public void exam() { /* ... */ }
}

五、對象創建與使用

Dog dog = new Dog();          // new 關鍵字在堆創建對象,棧存引用
dog.brand = "中華田園犬";      // 成員訪問符 . 賦值屬性
dog.age = 3;
System.out.println(dog.toString()); // 發送消息調用方法

六、方法定義與調用機制

1. 方法簽名

訪問修飾符 返回類型 方法名(參數列表) { 方法體 }

2. 參數傳遞:值傳遞

  • 基本類型:複製數值,方法內修改不影響外部。
  • 引用類型:複製引用地址,方法內修改對象內容對外部可見;但重新賦值引用本身不影響外部。
void operatorData(int age) { age++; } // 外部 age 不變
void operatorArray(int[] arr) { arr[2] = 100; } // 外部 arr[2] 變為 100

本質:基本類型存棧,引用類型棧存地址指向堆對象。

七、變量作用域

  • 成員變量(屬性):類級別,全類可見。
  • 局部變量:方法/代碼塊內,僅在定義塊內可見。

八、String 核心特性與常用方法

1. 創建方式與字符串池

  • String s = "abc"; → 常量池複用,s1 == s2 為 true。
  • String s = new String("abc"); → 堆中新建對象,s1 == s2 為 false,但 equals 為 true。
字面量指向常量池
new String 指向堆對象

2. 不可變性帶來的優勢

  • 線程安全,無需同步。
  • 常量池複用減少對象創建。
  • hashCode 可緩存,作為 Map Key 極快。

3. 常用方法速查

方法說明
length()字符長度
charAt(index)指定索引字符
concat(str)拼接(返回新對象)
contains(seq)是否包含子序列
equals(obj)內容比較
compareTo(str)字典序比較
indexOf(ch/str)首次出現索引
split(regex)正則分割
substring(begin, end)截取子串
toLowerCase()/toUpperCase()大小寫轉換

九、OOP 優勢總結

  1. 模擬現實實體:類封裝狀態與行為。
  2. 隱藏細節:公開介面隔離內部實現。
  3. 代碼復用:類模板創建多實例,繼承/組合復用邏輯。

十、Java 內存管理與垃圾回收

1. 對象生命周期

  1. new 在堆分配並初始化。
  2. 棧帧局部變量持有引用。
  3. 方法返回,棧帧銷毀,引用消失。
  4. 無引用對象成為垃圾,GC 回收堆內存。

2. GC 核心機制

  • 可達性分析:以 GC Roots(棧局部變量、靜態字段、JNI 引用等)為根,遍歷引用鏈,不可達對象可回收。
  • 回收觸發:引用消失、顯式置 null、作用域結束。
  • 演算法演進:引用計數(循環引用無法處理) → 可達性分析(標記-清除、標記-整理、複製、分代收集)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved