java动态内存分配?

Jav*_*ser 6 java memory-management instantiation

为什么对象初始化使用new称为动态内存分配的关键字,因为编译时本身我们需要知道该对象所需的内存.

另请说明ClassA object = new ClassA();堆栈中执行操作时会发生什么.

Don*_*ows 9

所有 Java对象都是动态分配的.你总是传递对它们的引用.这就是语言的设计方式.当你这样做时:

ClassA obj = new ClassA();
Run Code Online (Sandbox Code Playgroud)

然后在堆上分配对象,并将对它的引用存储在堆栈中(当然,假设它在方法内).这意味着您可以随时传递对象,而无需担心它们的存储位置.


Bri*_*new 5

它是动态的,因为你不知道什么时候需要分配 - 你根据需求分配.

另请注意,您知道该对象需要多少内存,但不知道该对象的成员需要多少内存.这可能仅在运行时可确定(例如,可变大小的数组).