Java中的内存分配

0 java

解释Java中用于编写程序的内存分配.

T.J*_*der 6

通常,内存在Java"堆"上分配,作为创建对象的自动结果.它是自动管理的; 一旦一个对象不再被引用,最终垃圾收集器就会将它曾经占用的内存返回给可用池.有关更多信息,请访问java.sun.com站点,例如本内容管理概述.特别是因为它与Sun的JVM实现HotSpot 有关,它上面有一个PDF.

这与程序员直接控制分配和释放的语言(例如C)形成对比.在Java中,您可以愉快地将其留给环境:

void doSomething() {
    NiftyObject joe;

    joe = new NiftyObject(); // Allocation

    // ...use joe for something...

    // Done; no "free" call (or similar) required
}
Run Code Online (Sandbox Code Playgroud)

joe超出范围(函数返回;我假设函数不返回joe或将其存储在某处)时,joe 可以由垃圾收集器收集.实际发生时完全取决于实现和环境.