我的问题有点简单。我只想知道,你能从java中的RAM中删除一个对象的实例吗?比如,当你输入:
new Cat();
您没有为那只新猫分配变量,因此您无法访问它。这发生在游戏中。它说类似“new Pig();”,它创建了一个猪的实例。但是当猪死了会发生什么?它是如何被删除的?它可以调用自己的方法来擦除自己吗?
谢谢。
我的问题有点简单。我只想知道,你能从java中的RAM中删除一个对象的实例吗?比如,当你输入:
new Cat();
您没有为那只新猫分配变量,因此您无法访问它。这发生在游戏中。它说类似“new Pig();”,它创建了一个猪的实例。但是当猪死了会发生什么?它是如何被删除的?它可以调用自己的方法来擦除自己吗?
谢谢。
垃圾收集器在没有“实时”可以得到它之后的某个时候清理它。
您不能明确删除它。它只会在某个时候被垃圾收集。
有很多关于此的文章 - 只需搜索“java 垃圾收集器”即可获得更多详细信息。理想情况下,请阅读最近的文章,因为在垃圾收集方面,最先进的技术发展很快。
这是一篇关于垃圾收集器如何在 Java 中工作的好文章
http://javarevisited.blogspot.com/2011/04/garbage-collection-in-java.html
你不能,垃圾收集器负责从内存中删除实例。
您可以使用调用垃圾收集器,System.gc()
但该方法不能保证从内存中清除。
无法手动执行此操作。JVM 中的垃圾收集器负责处理它。Java 不像 C 或 C++ 那样你拥有free()
并delete()
分别用于此目的。
您拥有的最接近的东西是System.gc();
,Runtime.gc();
但它们不会强制垃圾收集器。他们只是建议。
垃圾收集本身可以强制:强制垃圾收集。使用 Java 虚拟机工具接口,函数
jvmtiError ForceGarbageCollection(jvmtiEnv* env)
将“强制 VM 执行垃圾回收”。