Student student = new Student();
在上面的代码中,我们创建了一个Student类对象,即JVM在构造函数执行的第一行之前或构造函数执行之后分配内存,甚至在父类之后?
Student student = new Student();
在上面的代码中,我们创建了一个Student类对象,即JVM在构造函数执行的第一行之前或构造函数执行之后分配内存,甚至在父类之后?
当声明类类型的变量时,只会创建一个引用。仅当使用 new() 关键字初始化所述变量时才分配内存(在堆中)。如果您使用的是 Netbeans,您应该能够使用 NetBeans 分析器检查内存读/写操作,尽管我猜大多数 IDE 都包含类似的工具。内存是作为构造函数内部的第一件事而不是最后分配的。
简而言之,它是在构造函数之前分配的。
你的代码也可以这样写:
Student student;
student = new Student();
这意味着当变量 student 被声明时,它在第一行被声明为一个空引用。发生这种情况时,内存为学生分配了一个空间,将其声明为 Student 类型的变量作为引用,直到初始化为可用变量。