Duvida em metodo finalize()

4 respostas
Raff

Pessoal para que serve o metodo finalize()… note esse codigo …

class myclass
{
private myclass z;
public void other(myclass c){z=c;}
protected void finalize()
{
System.out.println("called");
}

}


class garbagetest2
{
private static void f()
{
}
public static void main(String[]args)
{
myclass c1=new myclass ();//line 1
myclass c2=new myclass();//line 2
c1.other(c2);
c2.other(c1);
myclass c3=new myclass();
c1=c3;
c2=c3;
f();
}

}

eu sei que a resposta é 2 mais o finalize() eu não entendi ele alguem poderia me explicar ?

4 Respostas

henrique.lima

O oráculo responde:
http://www.devx.com/Java/Article/30192

anderson.bonavides

Raff:
Pessoal para que serve o metodo finalize()… note esse codigo …

class myclass{
	private myclass z;
	public void other(myclass c){
		z=c;
	}
	protected void finalize(){
		System.out.println("called");
	}
}

class garbagetest2
{
	private static void f()	{
	}
	public static void main(String[]args){
		myclass c1=new myclass ();//line 1
		myclass c2=new myclass();//line 2
		c1.other(c2);
		c2.other(c1);
		myclass c3=new myclass();
		c1=c3;
		c2=c3;
		f();
	}
}

eu sei que a resposta é 2 mais o finalize() eu não entendi ele alguem poderia me explicar ?

Ralf eu não tentei acompanhar o código mas o métido finalize() faz com que um código seja executado antes que o objeto seja coletado pelo coletor de lixo. Ele só pode ser executado uma vez para um determinado objeto. Perceba que chamando finalize() vc pode evitar que aquele objeto seja excluido. Caso o métedo do objeto retorne algo.

anderson.bonavides

Ha só mais uma coisa vc pode executar ele antes que o Garbarage Collector seja executado. Ralf só a nível de curiosidade tu pode dizer a pergunta?
Seria algo do tipo: Quantos objetos vão estar qualificados para a coleta do lixo?

Raff

Sim sim Anderson quantos objetos !!!

Criado 10 de janeiro de 2008
Ultima resposta 11 de jan. de 2008
Respostas 4
Participantes 3