(Java)从内存中删除实例?

时间:2013-03-11 23:19:56

标签: java

我的问题有点简单。我想知道的是,你能从java中的RAM中删除对象和实例吗?比如,当你输入:

new Cat();

您没有为该新cat分配变量,因此您无法访问它。这发生在游戏中。它说的是“新猪();”,它创造了一个猪的实例。但是当猪死了会发生什么?怎么删除?它可以调用自己的方法来擦除自己吗?

感谢。

4 个答案:

答案 0 :(得分:5)

垃圾收集器在没有任何“实时”可以获取它之后的某个时刻清理它。

您无法明确删除它。它只是在某些时候被垃圾收集。

有很多关于此的文章 - 只需搜索“java垃圾收集器”以获取更多详细信息。理想情况下,阅读最近的文章,因为当涉及到垃圾收集时,现有技术发展很快。

答案 1 :(得分:2)

这是一篇关于垃圾收集器如何在Java中工作的好文章

http://javarevisited.blogspot.com/2011/04/garbage-collection-in-java.html

答案 2 :(得分:1)

你不能,垃圾收集器负责从内存中删除实例。

您可以使用System.gc()调用垃圾收集器,但该方法不能保证从内存中清除垃圾收集器。

答案 3 :(得分:0)

无法手动执行此操作。 JVM中的垃圾收集器负责处理它。 Java与C或C ++不同,为此您分别有free()delete()

你最接近的是System.gc();Runtime.gc();但它们不会强制垃圾收集器。他们只是建议。

可以强制垃圾收集本身:Force Garbage Collection。使用Java虚拟机工具接口,函数

jvmtiError ForceGarbageCollection(jvmtiEnv* env)

将“强制VM执行垃圾回收”。