构造函数调用存储在哪里? 堆栈还是堆?

创建对象并调用构造函数时,构造函数调用存储在何处? 它是在堆栈还是堆上?

堆仅用于存储对象。 没有办法在堆上调用构造函数。

它的调用是在堆栈上完成的。

堆栈用于方法调用。 它用于创建方法堆栈。 虽然构造函数不是一种方法。 但是你可以随时写任何逻辑或赋值任何方法。 所以它像任何其他方法一样在堆栈中实现。

构造函数调用的参数和局部变量存储在堆栈中,直到构造函数返回。

构造函数创建的对象存储在堆1中


1 – …除非您启用了“转义分析”,并且JIT编译器可以确定可以在堆栈上安全地分配对象。

JVM中堆栈和堆的运行时数据区如下,

1)堆:对象的存储区域(每个JVM实例一个)

2)Java堆栈:存储用于局部变量,中间操作的结果。(每个线程一个)