Pular para o conteúdo

Fundação VUNESP · Exército Brasileiro — Escola de Formação Complementar do Exército (EsFCEx) 2021

Questão 44 — Linguagens de Programação: Java — Método finalize() e Coleta de Lixo

Linguagens de Programação Java — Método finalize() e Coleta de Lixo

Fundação VUNESP 2021

Exército Brasileiro — Escola de Formação Complementar do Exército (EsFCEx) · Oficial do Quadro Complementar do Exército · Caderno 007. Prova Objetiva — Modelo de prova (Versão) A

Gabarito disponível

O método finalize() deve ser evitado na implementação de uma classe Java, pois
Selecione uma alternativa

Resolução comentada

finalize() não tem momento de execução garantido.

O método finalize() é chamado pelo coletor de lixo antes de reivindicar o objeto, mas a JVM não garante quando (nem se) ele será executado. Por isso não é confiável para liberar recursos, e deve-se preferir try-with-resources/close() explícito.

Análise das alternativas

A) Dados não viram lixo irrecuperável por causa dele. B) O GC não chama close() automaticamente. C) Chamar finalize() não encerra o programa de forma anormal. E) O finalize() é chamado antes da reivindicação da memória do objeto, não depois.

Referência: Java SE – Object.finalize().

Resolução comentada do VaiConcursos.

Ver gabarito

Gabarito: D

Fonte: Gabarito preliminar: Gabarito — 007. Prova Objetiva, Área: Informática, Versão A (página 19)