解释Java中用于编写程序的内存分配。
答案 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
可以是由垃圾收集器收集。当实际发生时,完全取决于实现和环境。