为什么使用 new
关键字的对象初始化称为动态内存分配,因为编译时本身我们需要知道该对象所需的内存。
另外请解释当您在 heap 和 stack 中执行 ClassA object = new ClassA();
时会发生什么。
最佳答案
所有 Java 对象都是动态分配的。您总是传递对它们的引用。这就是语言的设计方式。当你这样做时:
ClassA obj = new ClassA();
然后在堆上分配对象并将对它的引用存储在堆栈上(当然,假设它在方法内部)。这意味着您始终可以传递对象,而不必担心它们的存储位置。
关于java动态内存分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2532767/