JVM 規範定義三種引用類型:類、接口、數組。引用值指向堆上對象,默認值 null,不直接操作內存地址(無指針算術)。
MyClass obj = new MyClass(); 或 MyClass obj = null;MyClass obj = 0; // 編譯錯誤public static final 常量)implements 實現,一類可實現多接口Comparable c = new SortItem();default/static 方法,Java 9+ 支持 private 方法Object,擁有 length 最終字段int[] arr = new int[5]; / int[] arr = {1,2,3};ArrayIndexOutOfBoundsExceptionArrays.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(); /* ... */ }
}
構造器內賦值覆蓋默認值(0/null/false)。
| 類 | 包 | 核心用途 |
|---|---|---|
String | java.lang | 不可變字符序列,池化優化 |
StringBuilder | java.lang | 可變字符序列,非線程安全,高性能拼接 |
ArrayList | java.util | 動態數組,隨機訪問 O(1) |
HashMap | java.util | 散列表,鍵值存取 O(1) |
HashSet | java.util | 去重集合,基於 HashMap |
下一篇將深入講解 Collection/Map 體系、迭代器模式、流式操作及並發集合選型指南。