Reference Data Types in Java

2025年4月8日 | 阅读3分钟

Java 提供了两种数据类型:原始数据类型引用数据类型。原始数据类型是 Java 中预定义的,作为构建块;而引用数据类型则指向数据存储的位置。

在本节中,我们将讨论Java 中的引用数据类型是什么,以及它们与原始数据类型的区别

在 Java 中,非原始数据类型被称为引用类型。换句话说,类类型的变量被称为引用数据类型。它包含动态创建的对象的地址(或引用)。例如,如果 Demo 是一个类,并且我们创建了它的对象 d,那么变量 d 就被称为引用类型。

它引用对象。它不是预定义的。如果需要,它由程序员创建。引用类型保存对象的引用。所有引用类型都是 java.lang.Object 类型的子类。它提供了对存储在内存中的对象的访问。

引用数据类型的例子包括类、接口、String、数组等。

Reference Data Types in Java

Java 引用类型

Java 中有以下五种引用类型:

引用类型描述
Class它是一组指令。它描述了对象的内容。
Array它提供了一个固定大小的数据结构,用于存储相同类型的数据元素。
注解它提供了一种将元数据与程序元素相关联的方式。
Interface它由 Java 类实现。
枚举它是一种特殊的类,是类型安全的。枚举中的每个元素都是该枚举的一个实例。

引用类型与原始数据类型

引用类型原始类型
除了 String,其他都不是预定义的。它在 Java 中是预定义的。
所有引用类型都以大写字母开头。所有原始类型都以小写字母开头。
非原始类型的大小都相同。原始类型的大小取决于数据类型。
它用于调用方法。我们无法使用原始类型调用方法。
它可以为 null。它不能为 null。它始终有一个值。
引用数据类型的例子包括类、数组、String、接口等。原始数据类型的例子包括 int、float、double、Boolean、long 等。
JVM 默认分配 8 字节给每个引用变量。其大小取决于数据类型。
示例:Demo d1;示例:int num=78;

内存分配与垃圾回收

在 Java 中,new 关键字用于创建类的实例。换句话说,它通过为新对象分配内存并返回该内存的引用来实例化一个类。对象占用Java 堆空间中的内存。我们还可以使用 new 关键字来创建数组对象

如果没有对对象的引用,该对象使用的内存可以在垃圾回收过程中被回收。

原始类型与引用类型之间的转换

原始类型到引用类型的转换称为自动装箱,引用类型到原始类型的转换称为自动拆箱

比较引用类型

我们也可以比较 Java 中的引用类型。Java 提供了两种比较引用类型的方法:

使用等于 (==) 运算符

它比较对象的内存地址。如果两个对象的内存地址(引用)相同,则对象相等。请注意,它不比较对象的内容。例如:

使用 String.equals() 方法

该方法属于 String 类。它重写了 Objectequals() 方法。它也使用等于运算符 (==) 来比较引用类型。例如,考虑以下代码片段:

复制引用类型

复制引用类型有两种可能性:要么复制指向对象的引用,要么创建对象的实际副本(创建新副本)。

在下面的示例中,我们分配了一个对象的引用。如果我们对对象进行了任何更改,它也会反映到引用,反之亦然。