Java中的内存管理

时间:2011-06-24 10:10:15

标签: java memory-management

如何在Java中手动删除对象?有没有像obj.delete()obj.kill()

这样的方法

4 个答案:

答案 0 :(得分:10)

没有真正的方法。 Java有一个特殊的垃圾收集器,可以帮到你。一旦你的对象没有对它的任何引用,它将被垃圾收集器在某个时刻拾取并销毁。

来自Learning Java Tutorials

  

垃圾收集器

     

对象有资格获得垃圾   收集时没有更多   对该对象的引用。参考   在变量中保存的是   通常在变量出现时掉线   超出范围。或者,你可以明确地说   通过设置删除对象引用   变量到特殊值   空值。请记住,程序可以有   多次引用相同   宾语;对对象的所有引用   必须在对象之前删除   有资格进行垃圾收集。

答案 1 :(得分:3)

无法删除对象。当对象没有更多引用时,Java的垃圾收集器会自动执行它。

但是,一旦通过调用System.gc()删除了对对象的所有引用,就可以运行垃圾收集器。请仔细阅读方法的文档。它只保证尽最大努力删除所有标记为删除的对象。

您还应该进行这些讨论

答案 2 :(得分:2)

Java如此受欢迎的主要原因之一是垃圾收集。您不必担心分配或取消分配内存。话虽这么说,如果你想摆脱一个对象,只需将对象的所有引用设置为null,一旦垃圾收集器运行,该对象将被处理掉。
您必须担心关闭文件,套接字,数据库连接等资源......为此,您应该在try / finally块中执行此操作。

答案 3 :(得分:-1)

只需为其指定空值。

让GC处理这个

obj = null;