可以说我在实体类中有代码:
this.setCurrentState(new NormalState(this));
如果在正常状态类中我将实体的状态切换为:
entity.setCurrentState(new HungryState(entity));
NormalState 对象是否会被垃圾收集事件,尽管它持有对仍处于 Activity 状态的实体的引用,或者不会导致内存泄漏?
最佳答案
Java 的垃圾收集器会删除所有没有任何引用的对象。如果调用 setCurrentState
方法替换了对 NormalState
实例的存储引用,并且整个 VM 中没有对该对象的其他引用,则它会被标记为 垃圾
,因此,它将被收集。
关于Java就是这个垃圾收集器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24028068/