在Java中,对象实际上是存在于堆内存中的实体,它包含了数据和方法。当你创建一个对象时,实际上在内存中分配了一块空间来存储该对象的数据。
引用是一个变量,它存储了一个对象的内存地址(即对象在堆内存中的位置)。这样,你可以通过引用来访问和操作对象。
举例来说,假设有一个类 Person
:
public class Person {
String name;
public Person(String name) {
this.name = name;
}
}
然后你创建了一个 Person
对象:
Person person = new Person("John");
在这里,person
是一个引用,它存储了指向 Person
对象的内存地址。实际的 Person
对象被创建在堆内存中,并且 person
引用指向了这个对象。
如果你创建了另一个引用指向同一个对象:
Person anotherPerson = person;
那么 anotherPerson
也将指向相同的 Person
对象。这两个引用都指向了同一个对象,因此对其中一个引用所做的更改会在另一个引用中反映出来。
总结一下:
- 对象是在堆内存中实际存在的实体,包含数据和方法。
- 引用是一个变量,存储了对象的内存地址,可以用来访问和操作对象。