为什么构造函数位于堆栈而不是堆内存(Java)上,它们不是在创建对象时调用的吗?

Why do constructors live on stack instead of heap memory (Java), aren't they invoked on creation of an object?

提问人:Ab12 提问时间:11/10/2023 最后编辑:Mark RotteveelAb12 更新时间:11/10/2023 访问量:62

问:

我正在深入研究 Java 编程。当我读一本书时,我意识到与方法和关联的局部变量(堆栈变量)类似,构造函数也可以以与方法相同的方式堆栈序列(在每次调用时,机架位于调用堆栈的顶部,然后在完成时“弹出”(代码块“}”的结尾)。重复该过程,直到堆栈底部的机架完成执行所有语句。

所以,我想了解的是,为什么构造函数也会进入堆栈而不是堆内存(gc 堆),它们不应该是被实例化的对象的成员(也存在于堆上)?

我试着理解,但不能。

Java 内存管理 构造函数 CallStack 对象实例化

评论


答: 暂无答案