英文:
Memory allocation is done before first line of constructor execution or after constructor execution - Java
问题
在上面的代码中,我们创建了一个名为Student的类对象,在这个对象中,JVM是在构造函数的第一行执行之前分配内存还是在构造函数执行之后分配内存,甚至在父类之后分配内存?
英文:
Student student = new Student();
In the above code, we have created one Student class object, in that is JVM allocate the memory before the first line of constructor execution or after the constructor execution, Even after the parent classes?
答案1
得分: 1
当声明一个类类型的变量时,只创建一个引用。只有当使用new()关键字初始化该变量时,才会分配内存(在堆上)。如果您使用NetBeans,可以使用NetBeans分析器来检查内存读/写操作,虽然我猜想大多数IDE都包含类似的工具。内存分配是在构造函数内部的第一件事,而不是最后。
英文:
When a variable of class type is declared only a reference is created. Memory is allocated (in the heap) only when said variable is initialized with the new() keyword. You should be able to check the memory read/write operations with NetBeans profiler if you're using Netbeans, though I guess most IDE include a similar tool.
The memory is allocated as first thing inside the constructor rather than last.
答案2
得分: 0
In short, it is allocated before the constructor.
Your code can be also written like this:
Student student;
student = new Student();
This means that when the variable student is declared, it is declared as an empty reference in the first line. When that happens, the memory allocated a space for student, declaring it as a variable of type Student as a reference until initialized into a usable variable.
英文:
In short, it is allocated before the constructor.
Your code can be also written like this:
Student student;
student = new Student();
This means that when the variable student is declared, it is declared as an empty reference in the first line. When that happens, the memory allocated a space for student, declaring it as a variable of type Student as a reference until initialized into a usable variable.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论