¿Java GC destruye objetos si las variables de instancia aún tienen referencia?

He leído algunas de las guías de recolección de basura de Java en línea, pero aún no estoy seguro y quiero asegurarme para que no haya pérdidas de memoria en mi código.

¿Java GC recopila objetos que perdieron su referencia, pero sus variables aún tienen referencia?

Así que digamos que tengo SomeObject:

public class SomeObject {
    public ObjectVar var;

    public SomeObject() {
        var = new ObjectVar();
    }
}

Y mi código:

SomeObject obj1 = new SomeObject();
SomeObject obj2 = new SomeObject();
obj2.var = obj1.var;
obj1 = null;

Así que la var de obj1 tiene referencia, pero obj1 ya no tiene ninguna referencia. Entonces, ¿destruirá el GC obj1, pero mantendrá viva a var? (Supongo que sí; sólo quería estar seguro). ¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta