Java中的引用数据类型主要包括类、接口和数组;它们均通过引用访问堆中对象,变量默认值为null,类是对象模板,接口定义行为契约,数组是同类型元素的连续容器。

Java 中的引用数据类型不是笼统的一个概念,而是有明确的三类核心构成:类、接口、数组。它们都通过引用(即内存地址)操作对象,实际数据存于堆中,变量本身只保存指向对象的指针,默认值为 null。
类(Class)——对象的模板与实例载体
类是面向对象编程的基础,定义了一组具有相同属性(字段)和行为(方法)的对象结构。它既是抽象模型,也是创建具体对象的依据。
- 所有自定义类型(如 Person、Student)和内置类型(如 String、ArrayList)本质上都是类
- 类可包含成员变量、构造方法、普通方法、静态方法、内部类等完整结构
- 通过 new 关键字实例化,每次调用都会在堆中分配新空间
- 支持继承(extends)、封装、多态;一个类只能继承一个父类
接口(Interface)——行为契约与能力声明
接口不描述“是什么”,而规定“能做什么”。它是一组抽象方法的集合,代表一种能力或协议,由实现类来兑现。
- 接口中的方法默认是 public abstract,字段默认是 public static final(即常量)
- 从 Java 8 开始,接口可含 default 方法(有实现)和 static 方法(直接通过接口名调用)
- 一个类可用 implements 实现多个接口,用于解耦和扩展功能(如 Runnable、Comparable)
- 接口不能被实例化,但可作为引用类型声明变量,指向其实现类的对象
数组(Array)——同类型元素的连续容器
数组是 Java 中最基础的引用类型之一,用于按索引顺序存储固定数量的同类型元素,其长度一旦创建便不可变。
- 声明方式灵活:int[] arr 或 int arr[](前者更推荐)
- 创建必须指定长度:new String[5],此时元素自动初始化为对应类型的默认值(对象为 null,数字为 0,布尔为 false)
- 数组本身是对象,拥有 length 属性(不是方法),也继承自 Object 类
- 支持多维形式(如 int[][] matrix),本质是“数组的数组”,每个维度都独立分配内存

















