java的gc检查内存回收时,使用有向图机制,及检查一个或一组对象的可达性。如果是不可达状态,则将该对象从内存中回收,所谓不可达状态,也就是一个对象不被任何引用所指向或者叫持有。
另外,java的循环引用不同于oc或者c++,当一组对象中只包含互相的引用,而没有来自它们外部的引用(例如有两个对象A和B互相持有引用,但没有任何外部对象持有指向A或B的引用),这仍然属于不可到达,同样会被GC回收。
Copyright © 2015 Powered by MWeb, Theme used GitHub CSS.