Jav*_*ser 6 java memory-management instantiation
为什么对象初始化使用new称为动态内存分配的关键字,因为编译时本身我们需要知道该对象所需的内存.
另请说明ClassA object = new ClassA();在堆和堆栈中执行操作时会发生什么.
所有 Java对象都是动态分配的.你总是传递对它们的引用.这就是语言的设计方式.当你这样做时:
ClassA obj = new ClassA();
Run Code Online (Sandbox Code Playgroud)
然后在堆上分配对象,并将对它的引用存储在堆栈中(当然,假设它在方法内).这意味着您可以随时传递对象,而无需担心它们的存储位置.
它是动态的,因为你不知道什么时候需要分配 - 你根据需求分配.
另请注意,您知道该对象需要多少内存,但不知道该对象的成员需要多少内存.这可能仅在运行时可确定(例如,可变大小的数组).
| 归档时间: |
|
| 查看次数: |
27826 次 |
| 最近记录: |