Java中的内存分配

时间:2010-02-08 06:57:14

标签: java

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

1 个答案:

答案 0 :(得分:6)

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

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

void doSomething() {
    NiftyObject joe;

    joe = new NiftyObject(); // Allocation

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

    // Done; no "free" call (or similar) required
}

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