在Java中,对象何时变得无法访问?
2022-09-02 03:35:20
在Java中,什么是无法访问的对象?对象何时变得不可访问?在研究垃圾收集时,我无法理解这个概念。
任何人都可以用例子给出任何想法吗?
在Java中,什么是无法访问的对象?对象何时变得不可访问?在研究垃圾收集时,我无法理解这个概念。
任何人都可以用例子给出任何想法吗?
当不再有任何参考变量引用它时,或者当它在孤岛中时。
岛是具有指向它的参考变量的对象,但是该对象没有指向它的参考变量。
class A { int i = 5; }
class B { A a = new A(); }
class C {
B b;
public static void main(String args[]) {
C c = new C();
c.b = new B();
// instance of A, B, and C created
c.b = null;
// instance of B and A eligible to be garbage collected.
}
编辑:只是想指出,即使A的实例有引用,它现在也在岛上,因为B的实例没有引用它。A 实例符合垃圾回收条件。
当没有更多对对象的引用时,或者这些引用本身来自不可爬设的对象,则该对象是不可回切的。
Integer i = new Integer(4);
// the new Integer object is reachable via the reference in 'i'
i = null;
// the Integer object is no longer reachable.