如果有一个类,类名是Engine,里面有个list,记录了一个Plugin。Plugin里有个私有变量,初始化的时候记录了Engine,并且里面有很多数据。
现在如果把这个Plugin从Engine里的list中remove掉,Plugin会被回收么?
我个人认为没有任何引用指向Plugin的话,应该会被直接回收的吧……
如果有一个类,类名是Engine,里面有个list,记录了一个Plugin。Plugin里有个私有变量,初始化的时候记录了Engine,并且里面有很多数据。
现在如果把这个Plugin从Engine里的list中remove掉,Plugin会被回收么?
我个人认为没有任何引用指向Plugin的话,应该会被直接回收的吧……
没错,GC的原理就是从根对象开始遍历它引用的其它变量。然后在这个过程中所有不可到达的对象,都会被GC。你remove了,之后没有任何活动的变量指向它,那么就会被回收。