Diferença entre o Coletor de Lixo e o Destruidor

Índice:

Diferença entre o Coletor de Lixo e o Destruidor
Diferença entre o Coletor de Lixo e o Destruidor

Vídeo: Diferença entre o Coletor de Lixo e o Destruidor

Vídeo: Diferença entre o Coletor de Lixo e o Destruidor
Vídeo: POR QUE FAZER A COLETA SELETIVA DO LIXO? 2024, Julho
Anonim

Diferença Chave – Coletor de Lixo vs Destruidor

A maioria das linguagens de programação suporta Programação Orientada a Objetos. É uma metodologia para construir um programa ou software usando objetos. Um objeto é criado usando uma classe, portanto, é uma instância de uma classe. Uma classe fornece a descrição do que o objeto deve consistir. Ao criar objetos, a memória é alocada para os objetos. A memória alocada deve ser liberada no final da execução do programa para reutilizar essa memória para algum outro objeto. Linguagens de programação como Java e C. NET usam coletores de lixo para gerenciamento de memória, enquanto linguagens como C e C++ exigem que o programador lide com o gerenciamento de memória. A quantidade necessária de memória deve ser alocada e, ao final da execução, a memória deve ser liberada. O coletor de lixo e o destruidor são usados para liberar memória. A principal diferença entre o coletor de lixo e o destruidor é que um coletor de lixo é um software que executa o gerenciamento automático de memória enquanto um destruidor é um método especial chamado pelo coletor de lixo durante a destruição do objeto.

O que é um Coletor de Lixo?

Algumas linguagens de programação possuem ambientes de código gerenciado. Nas linguagens de programação Java e C, o gerenciamento automático de memória é realizado. O programador não precisa liberar a memória utilizada pelos objetos. É mais fácil para eles desenvolverem até sistemas complexos porque o gerenciamento de memória é feito automaticamente. Em linguagens de programação como C, C++ e Objective C, o programa deve liberar a memória dos objetos de volta ao sistema. Linguagens como Java e C podem descobrir os objetos que não são mais usados. Depois, eles liberam a memória alocada para esses objetos de volta ao sistema.

Nas linguagens de programação C e Java, se existe uma classe chamada Aluno, então um objeto pode ser criado usando Aluno s=new Aluno (); O 'novo' é usado para criar uma instância da classe Aluno. Ele aloca memória no sistema. O 's' está se referindo ao bloco de memória alocado para aquele objeto. Os ambientes de linguagem identificam se os objetos estão sendo usados ou não. Se eles não forem mais usados, a memória será liberada e poderá ser usada posteriormente.

Diferença entre o coletor de lixo e o destruidor
Diferença entre o coletor de lixo e o destruidor

Figura 01: Coletor de Lixo e Destruidor

Ao executar um programa, os blocos de memória são alocados do pool de memória do sistema. Em seguida, o programa executa as tarefas usando essa memória. Quando a execução do programa termina, o coletor de lixo descobre se os blocos de memória alocados para o programa são essenciais ou não. Se não forem necessários, esses blocos de memória serão devolvidos ao sistema. Assim, o coletor de lixo pode rastrear os objetos criados no programa. Os blocos de memória que não são mais necessários são enviados de volta ao pool de memória do sistema. A principal vantagem desse processo é confirmar que o programador não precisa se concentrar na desalocação de memória. Ele equilibra desempenho e uso de memória.

O que é um Destruidor?

Um destruidor é uma função membro especial de uma classe. É invocado sempre que o objeto sai do escopo. O objeto pode ser destruído quando uma função termina ou ao final da execução do programa. O destruidor tem o mesmo nome que o nome da classe. O construtor é usado para criar o objeto. Pode aceitar parâmetros. O construtor também pode ter valores de retorno. Mas em um Destruidor, não há tipo de retorno ou parâmetros de aceitação. Uma classe só pode consistir em um destruidor. Um destruidor é referido usando o sinal de til. Se o nome da classe for Student, o destruidor será ~Student() {}.

O coletor de lixo procura os objetos que não são mais necessários. Ele garante que os objetos que não são mais usados pelo programa sejam destruídos. Ele chama o destruidor para liberar a memória e desalocar os recursos. Destrutores são úteis para liberar memória, fechar arquivos, liberar recursos de rede e fechar conexões de banco de dados. Na maioria das linguagens de programação, não é necessário escrever o destruidor porque o coletor de lixo chama o construtor padrão por conta própria. Se o programador fez alguma alocação dinâmica de memória usando ponteiros em uma linguagem como C++, então ele deve escrever um destruidor para liberar memória antes que o objeto seja destruído.

Qual é a semelhança entre o Garbage Collector e o Destructor?

Tanto o Garbage Collector quanto o Destructor são usados para liberar memória que não é mais necessária para o programa

Qual é a diferença entre o coletor de lixo e o destruidor?

Coletor de Lixo vs Destruidor

Um coletor de lixo é um software que realiza o gerenciamento automático de memória. Um destruidor é um método especial chamado pelo coletor de lixo durante a destruição do objeto.
Tipo
Um coletor de lixo é um software. Um destruidor é um método.

Resumo – Coletor de Lixo vs Destruidor

Garbage collector e destructor são dois termos associados à liberação de memória. Este artigo discutiu a diferença entre o Garbage Collector e o destruidor. A diferença entre o coletor de lixo e o destruidor é que um coletor de lixo é um software que executa o gerenciamento automático de memória enquanto um destruidor é um método especial chamado pelo coletor de lixo durante a destruição do objeto.

Baixe o PDF de Garbage Collector vs Destructor

Você pode baixar a versão em PDF deste artigo e usá-la para fins offline conforme nota de citação. Faça o download da versão em PDF aqui: Diferença entre o Garbage Collector e o Destructor

Recomendado: