Folks,
uma duvida porque o metodo finalize só funciona
qdo o comando gc() é invocado no momento em que
o objeto é igual a null não executa por que ?
public class UsoFinalize {
int codigo;
String nome;
public void finalize() {
System.out.println("Vou ser coletado!!");
}
public String toString() {
String retorno =this.codigo+" "+this.nome;
return retorno ;
}
public static void main (String[] args){
UsoFinalize u = new UsoFinalize();
u.setCodigo(10);
u.setNome("Nome");
System.out.println("mostra="+u.toString());
u = null;
System.gc();
}
resultado:
mostra=10 Nome
Vou ser coletado!!
se comentado a linha gc()
public class UsoFinalize {
int codigo;
String nome;
public void finalize() {
System.out.println("Vou ser coletado!!");
}
public String toString() {
String retorno =this.codigo+" "+this.nome;
return retorno ;
}
public static void main (String[] args){
UsoFinalize u = new UsoFinalize();
u.setCodigo(10);
u.setNome("Nome");
System.out.println("mostra="+u.toString());
u = null;
// System.gc();
}
resultado:
mostra=10 Nome
minha duvida qdo o objeto está nulo já não é executado o metodo finalize() ???
se alguém puder me ajudar agradeceria???