【发布时间】:2021-10-27 23:49:49
【问题描述】:
我是 Java 初学者,所以我在 Google 上搜索时并不了解堆概念。在 OOP 教程中,我了解到当我们使用“new”关键字创建对象时,会为该对象分配内存。如果我不为类实例的属性提供值怎么办,那么实例变量也会占用内存但它们没有任何值。
class Employee{
int age;
String name;
}
public class Main {
public static void main(String[] args) {
Employee emp = new Employee();
// I didn't provide any values to age and name
}
}
【问题讨论】:
-
"... OOPs..." - 正确的缩写是 OOP。 ---
Employee中的两种类型性质不同。int age是一个原语,因此即使没有初始化,它也会保持值0(所有原语都如此)。对于String name,为引用创建内存(因为所有对象都由引用寻址)。引用本身将引用null,因为我们没有显式为其赋值,表示当前没有存储引用。 -
重要的是要意识到变量本身的空间和变量值的空间(对于引用类型)是两个不同的东西。