0

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

new Cat();

您没有为那只新猫分配变量,因此您无法访问它。这发生在游戏中。它说类似“new Pig();”,它创建了一个猪的实例。但是当猪死了会发生什么?它是如何被删除的?它可以调用自己的方法来擦除自己吗?

谢谢。

4

4 回答 4

5

垃圾收集器在没有“实时”可以得到它之后的某个时候清理它。

您不能明确删除它。它只会在某个时候被垃圾收集。

有很多关于此的文章 - 只需搜索“java 垃圾收集器”即可获得更多详细信息。理想情况下,请阅读最近的文章,因为在垃圾收集方面,最先进的技术发展很快。

于 2013-03-11T23:21:35.537 回答
2

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

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

于 2013-03-11T23:22:28.527 回答
1

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

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

于 2013-03-11T23:23:00.853 回答
0

无法手动执行此操作。JVM 中的垃圾收集器负责处理它。Java 不像 C 或 C++ 那样你拥有free()delete()分别用于此目的。

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

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

jvmtiError ForceGarbageCollection(jvmtiEnv* env)

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

于 2013-03-11T23:55:53.640 回答