我的问题有点简单。我想知道的是,你能从java中的RAM中删除对象和实例吗?比如,当你输入:
new Cat();
您没有为该新cat分配变量,因此您无法访问它。这发生在游戏中。它说的是“新猪();”,它创造了一个猪的实例。但是当猪死了会发生什么?怎么删除?它可以调用自己的方法来擦除自己吗?
感谢。
答案 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执行垃圾回收”。