Объект может быть подвергнут сборке мусора, если на него нет ссылок, или каждый объект, который ссылается на него, также подвергается сборке мусора.
public int getThing() {
Object o = new Object();
return 5;
}
Здесь o можно собирать после метода, поскольку ничто не указывает на него.
Object o = null;
public int getThing() {
o = new Object();
return 5;
}
Здесь это невозможно, потому что другие вещи могут ссылаться на o , поскольку это член класса.
public Object getThing() {
Object o = new Object();
return o;
}
Здесь этого не может быть, потому что его возвращают. Если звонящий держится за него, он остается живым.
Если на кого-то есть указатель, он остается в живых (примерно).