Finalize()

Java permite objetos implementar um método chamado finalize(). Este método é chamado se o garbage collector tentar coletar o objeto.

Se o garbage collector não executar, o método não é chamado. Se o garbage collector falhar ao coletar o objeto e tentar novamente mais tarde, o método não é chamado na segunda vez.

Na prática, isto significa que é altamente recomendado não utilizar em um projeto real. Para o exame apenas lembre que o método finalize não é chamado duas vezes.

Resumindo: o método finalize evita que o objeto seja excluído pelo o garbage collector.

Este código não produz nenhuma saída quando executado.

Não mostra nenhuma saída, porque há a necessidade de executar o garbage collector antes do método finalize().

Enquanto f é elegível para o garbage collection, o Java está executando outras coisas mais importantes do que executar o garbage collector a todo momento.

Para o exame você precisa saber que o finalize() executa nenhuma ou uma vez. Veja o seguinte código (código 1):

Lembre-se, finalize() só executa quando o objeto é elegível para o garbage collection.

O problema no código 1 é que o objeto não é elegível para o garbage collection, porque uma variável estática permanece no escopo (ativa) até a finalização do sistema.

O Java é esperto o suficiente para saber se deve cancelar a tentativa de coletar o objeto.

Suponhamos que um objeto esteja nulo. Agora sim podemos finalmente remover o objeto da memória. O Java vai lembrar que já executou o finalize() uma vez e não executará novamente.

Entendendo os Operadores Java

Um operador Java é um símbolo especial que pode ser aplicada a variáveis, valores ou literais.

Há vários operadores no Java: unário, binário e ternário. Este tipo de operadores pode ser aplicado a um, dois ou três operandos, respectivamente.

Operadores Java não necessariamente são lidos da esquerda para direita. Por exemplo:

int y = 4;

double x = 3 + 2 * –y;

No exemplo, você deve primeiro decrementar o y para 3, e depois multiplicar o resultado por 2, e finalmente adicionar 3.

Se não houver parênteses na expressão, o Java irá seguir o que está na tabela 2.1. Se dois operadores têm a mesma prioridade, o Java irá executar da esquerda para direita.

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário

*

Seja o primeiro a comentar!