Diferença chave - dispose () vs finalize ()
A principal diferença entre dispose () e finalize () é que dispose () deve ser explicitamente invocado pelo programador enquanto finalize () é invocado pelo coletor de lixo antes de destruir o objeto.
O dispose () é um método para fechar ou liberar recursos não gerenciados, como arquivos, fluxos mantidos por um objeto. O finalize é um método para executar operações de limpeza em recursos não gerenciados mantidos pelo objeto atual antes que o objeto seja destruído.
CONTEÚDO
1. Visão geral e diferença principal
2. O que é dispose ()
3. O que é finalize ()
4. Semelhanças entre dispose () e finalize ()
5. Comparação lado a lado - dispose () vs finalize () na forma tabular
6. Resumo
O que é dispose ()?
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ído em. NET framework fornece o coletor de lixo. Ajuda a administrar a memória. Ele não pode ser usado para liberar os recursos de memória não gerenciados. O método dispose () pode ser usado para realizar essa tarefa.
O método dispose () 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 é chamado, a memória para o recurso não gerenciado específico é liberada. Este método é declarado na interface IDisposeable.
O que é finalize ()?
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 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 de outras classes. No geral, o método finalize pode minimizar o desempenho do programa porque não libera a memória instantaneamente.
Qual é a similaridade entre dispose () e finalize ()?
Dispose () e finalize () podem ser usados para liberar a memória alocada para um recurso não gerenciado
Qual é a diferença entre dispose () e finalize ()?
Artigo Diff meio antes da tabela
dispose () vs finalize () |
|
O dispose () é um método para fechar ou liberar recursos não gerenciados, como arquivos, fluxos mantidos por um objeto. | O finalize é um método para executar operações de limpeza em recursos não gerenciados mantidos pelo objeto atual antes que o objeto seja destruído. |
Objetivo | |
O método dispose é usado para liberar os recursos não gerenciados quando é chamado. | O método finalize é usado para liberar os recursos não gerenciados antes que o objeto seja destruído. |
Interface ou classe definida | |
O dispose () é definido na interface IDisposable interface. | O finalize () é definido na classe java.lang.object. |
Método de Invocação | |
O método dispose é invocado pelo programador. | O método finalize é invocado pelo coletor de lixo. |
Especificador de acesso | |
O método dispose é público. | O método finalize está protegido. |
Rapidez | |
O método dispose é invocado instantaneamente. | O método finalize é chamado lentamente. |
atuação | |
O descarte não minimizará o desempenho do programa. | O método finalize pode minimizar o desempenho do programa. |
Resumo - dispose () vs finalize ()
Este artigo discutiu a diferença entre os métodos dispose e finalize em C #. A diferença entre dispose () e finalize () é que dispose () deve ser explicitamente invocado pelo programador enquanto finalize () é invocado pelo coletor de lixo antes de destruir o objeto.