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

Java 復雜數據類型全景:引用類型、數組、接口與復合類型設計

     編輯:Java 相關知識

引用類型三大支柱

JVM 規範定義三種引用類型:類、接口、數組。引用值指向堆上對象,默認值 null,不直接操作內存地址(無指針算術)。

類類型

  • 定義方法與數據的模板,實例化產生對象
  • 變量聲明:MyClass obj = new MyClass(); 或 MyClass obj = null;
  • 不支持直接賦值基本類型:MyClass obj = 0; // 編譯錯誤

接口類型

  • 純契約,定義方法簽名,無實例字段(默認 public static final 常量)
  • 類通過 implements 實現,一類可實現多接口
  • 接口變量持有實現類實例:Comparable c = new SortItem();
  • Java 8+ 支持 default/static 方法,Java 9+ 支持 private 方法

數組類型

  • 動態創建,繼承自 Object,擁有 length 最終字段
  • 聲明初始化:int[] arr = new int[5]; / int[] arr = {1,2,3};
  • 下標從 0 開始,越界拋出 ArrayIndexOutOfBoundsException
  • 長度不可變,擴容需創建新數組 Arrays.copyOf(arr, newLength)
  • 多維數組本質是「數組的數組」:int[][] matrix = new int[3][]; 每行長度可不同

復合數據類型:類與接口組合建模

Java 無 struct/union,通過類封裝數據與行為:

// C 風格結構體
struct Car { char* model; Engine* engine; Tire* tires[4]; }

// Java 面向對象建模
interface Engine { void start(); }
interface Tire { double pressure(); }

class Car {
    private final String model;
    private final Engine engine;
    private final Tire[] tires; // 長度固定 4

    public Car(String model, Engine engine, Tire[] tires) {
        this.model = model;
        this.engine = engine;
        this.tires = tires.clone(); // 防禦性拷貝
    }
    // 行為方法
    public void drive() { engine.start(); /* ... */ }
}

初始化順序與構造器

  1. 父類靜態字段/靜態塊(按聲明順序)
  2. 子類靜態字段/靜態塊
  3. 父類實例字段/實例塊
  4. 父類構造器
  5. 子類實例字段/實例塊
  6. 子類構造器

構造器內賦值覆蓋默認值(0/null/false)。

預定義復合類型代表

類包核心用途
Stringjava.lang不可變字符序列,池化優化
StringBuilderjava.lang可變字符序列,非線程安全,高性能拼接
ArrayListjava.util動態數組,隨機訪問 O(1)
HashMapjava.util散列表,鍵值存取 O(1)
HashSetjava.util去重集合,基於 HashMap

集合框架預告

下一篇將深入講解 Collection/Map 體系、迭代器模式、流式操作及並發集合選型指南。

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