Java就是这个垃圾收集器

标签 java garbage-collection

可以说我在实体类中有代码:

this.setCurrentState(new NormalState(this));

如果在正常状态类中我将实体的状态切换为:

entity.setCurrentState(new HungryState(entity));

NormalState 对象是否会被垃圾收集事件,尽管它持有对仍处于 Activity 状态的实体的引用,或者不会导致内存泄漏?

最佳答案

Java 的垃圾收集器会删除所有没有任何引用的对象。如果调用 setCurrentState 方法替换了对 NormalState 实例的存储引用,并且整个 VM 中没有对该对象的其他引用,则它会被标记为 垃圾,因此,它将被收集。

关于Java就是这个垃圾收集器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24028068/

相关文章:

java - 我需要在那里显式使用flush()方法吗?

java - 如何在Java中添加计数器?

memory-leaks - 禁用D的GC是 'ok'吗?

c# - 如何确保 StringBuilder 对象在多线程环境中被 GCed? (鉴于我不能使用 using 关键字)?

java - VM 内存空间大导致 Tomcat 性能下降

java - 如何使用 HAPI 从 HL7 消息中读取多个 ORC 和 OBR 段

java - GAE w/Objectify - 你能查询 HashMap 吗?

java - 使用 Jetty maven 插件部署 war

java - 高峰请求到来时,Java GC频繁且时间长,导致应用停止响应10分钟

java - G1 不处理软引用