Diferença entre descarte () e finalize ()

Índice:

Diferença entre descarte () e finalize ()
Diferença entre descarte () e finalize ()

Vídeo: Diferença entre descarte () e finalize ()

Vídeo: Diferença entre descarte () e finalize ()
Vídeo: C# : Difference between destructor, dispose and finalize method 2024, Julho
Anonim

Key Difference – descarte () vs finalize ()

A principal diferença entre descarte () e finalize () é que o descarte () deve ser explicitamente invocado pelo programador enquanto o finalize () é invocado pelo coletor de lixo antes de destruir o objeto.

O descarte() é um método para fechar ou liberar recursos não gerenciados como arquivos, fluxos mantidos por um objeto. O finalize é um método para realizar operações de limpeza em recursos não gerenciados mantidos pelo objeto atual antes que o objeto seja destruído.

O que é descarte()?

Uma das vantagens mais importantes do. NET framework é que ele fornece coleta de lixo automática. Ele libera automaticamente a memória dos objetos que não são usados. Em linguagens de programação como C e C++, o programador precisa lidar com o gerenciamento de memória por conta própria. Mas em linguagens como C que é construída em. NET framework fornece o coletor de lixo. Ajuda a gerenciar a memória. Ele não pode ser usado para liberar os recursos de memória não gerenciados. O método de descarte () pode ser usado para realizar essa tarefa.

Diferença entre descarte () e finalize ()
Diferença entre descarte () e finalize ()

O método de descarte () pode ser usado para liberar recursos como conexões de banco de dados, manipuladores de arquivos etc. Este método não é chamado automaticamente. Portanto, o programador deve implementar este método. Assim que esse método é invocado, a memória para o recurso não gerenciado específico é liberada. Este método é declarado na interface IDisposeable.

O que é finalizar ()?

O método finalize só é chamado pelo coletor de lixo quando a referência a um objeto não é mais usada. Este método é chamado imediatamente antes de destruir o objeto. Este método é implementado com a ajuda do destruidor. O método finalize é definido na classe java.lang.object. Este método é declarado como protegido. Não é declarado como público para evitar o acesso por outras classes. No geral, o método finalize pode minimizar o desempenho do programa porque não libera a memória instantaneamente.

Qual é a semelhança entre descarte () e finalize()?

Tanto o descarte () quanto o finalize () podem ser usados para liberar a memória alocada para um recurso não gerenciado

Qual é a diferença entre descarte () e finalize()?

dispose () vs finalize ()

O descarte () é um método para fechar ou liberar recursos não gerenciados, como arquivos, fluxos mantidos por um objeto. O finalize é um método para realizar operações de limpeza em recursos não gerenciados mantidos pelo objeto atual antes que o objeto seja destruído.
Objetivo
O método de descarte é usado para liberar os recursos não gerenciados quando é invocado. O método finalize é usado para liberar os recursos não gerenciados antes que o objeto seja destruído.
Interface definida ou classe
O descarte () é definido na interface IDisposable interface. O finalize() é definido na classe java.lang.object.
Método de Invocação
O método de descarte é invocado pelo programador. O método finalize é invocado pelo coletor de lixo.
Especificador de acesso
O método de descarte é público. O método finalize está protegido.
Velocidade
O método de descarte é invocado instantaneamente. O método finalize é invocado lentamente.
Desempenho
O descarte não minimizará o desempenho do programa. O método finalize pode minimizar o desempenho do programa.

Resumo – descarte () vs finalize ()

Este artigo discutiu a diferença entre os métodos de descarte e finalização em C. A diferença entre descarte () e finalize () é que, descarte () deve ser explicitamente invocado pelo programador enquanto o finalize () é invocado pelo coletor de lixo antes de destruir o objeto.

Recomendado: