gpt4 book ai didi

java - 在java中初始化任何类时,它会创建两个对象吗?

转载 作者:搜寻专家 更新时间:2023-10-30 21:17:00 26 4
gpt4 key购买 nike

我知道对于每个类初始化,每个类都会扩展对象类。这是否意味着 JVM 将为自定义类和 Object 类创建一个对象?谁能把类初始化的这个过程解释的很清楚。

编辑:

那么如果我将任何父类(super class)扩展到子类,这个父类(super class)是否占用与子类相同的内存?

最佳答案

Does it means JVM will create object for custom class and Object class?

不,它只会为自定义类创建一个对象,但该对象包含 Object 类成员(以及所有其他父类(super class)的成员)。

从概念上讲,您可以将自定义类的一个实例的内存布局想象成这样:

+============+
|Members of |
|Object |
+------------+
|Members of |
|other super |
|classes |
| ... |
+------------+
|Members of |
|Custom class|
+============+

本质上,将分配一 block 内存,其大小为自定义类(包括 Object 和所有其他父类(super class)),并通过调用构造函数对于每个父类(super class),父类(super class)的成员都将被初始化。

另见

关于java - 在java中初始化任何类时,它会创建两个对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17804016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com