La mayoría de los lenguajes de programación son compatibles con la programación orientada a objetos. Es una metodología para construir un programa o un software usando objetos. Un objeto se crea utilizando una clase, por lo que es una instancia de una clase. Una clase proporciona la descripción de en qué debe consistir el objeto. Al crear objetos, se asigna memoria para los objetos. La memoria asignada debe liberarse al final de la ejecución del programa para reutilizar esa memoria para algún otro objeto. Los lenguajes de programación como Java y C # .NET usan recolectores de basura para la gestión de la memoria, mientras que los lenguajes como C y C ++ requieren que el programador maneje la gestión de la memoria. Se debe asignar la cantidad necesaria de memoria y, al final de la ejecución, se debe liberar la memoria. El recolector de basura y el destructor se utilizan para liberar memoria. los diferencia clave entre el recolector de basura y el destructor es que un recolector de basura es un software que realiza la administración automática de memoria mientras que un destructor es un método especial llamado por el recolector de basura durante la destrucción del objeto.
1. Resumen y diferencia clave
2. ¿Qué es un recolector de basura?
3. Que es un destructor
4. Similitudes entre recolector de basura y destructor
5. Comparación lado a lado - recolector de basura vs destructor en forma tabular
6. Resumen
Algunos lenguajes de programación tienen entornos de código administrado. En los lenguajes de programación Java y C #, se realiza la gestión automática de la memoria. El programador no necesita liberar la memoria utilizada por los objetos. Es más fácil para ellos desarrollar incluso sistemas complejos porque la gestión de la memoria se realiza automáticamente. En los lenguajes de programación como C, C ++ y Objective C, el programa debe liberar la memoria de los objetos al sistema. Los lenguajes como Java y C # pueden descubrir los objetos que ya no se utilizan. Luego, liberan la memoria asignada para esos objetos al sistema..
En los lenguajes de programación C # y Java, si hay una clase llamada Estudiante, entonces se puede crear un objeto usando Student s = new Student (); El 'nuevo' se utiliza para crear una instancia de clase de estudiante. Se asigna memoria en el sistema. La 's' se refiere al bloque de memoria asignado para ese objeto. Los entornos de lenguaje identifican si los objetos están siendo utilizados o no. Si no se usan más, la memoria se libera y puede usarse más adelante..
Figura 01: recolector de basura y destructor
Cuando se ejecuta un programa, los bloques de memoria se asignan desde el grupo de memoria del sistema. Luego el programa realiza las tareas utilizando esa memoria. Cuando finaliza la ejecución del programa, el recolector de basura determina si los bloques de memoria asignados para el programa son esenciales o no. Si no son necesarios, esos bloques de memoria se devuelven al sistema. Por lo tanto, el recolector de basura puede rastrear los objetos creados en el programa. Los bloques de memoria que ya no son necesarios se devuelven a la agrupación de memoria del sistema. La principal ventaja de este proceso es confirmar que el programador no tiene que concentrarse en la desasignación de memoria. Equilibra el rendimiento y el uso de la memoria..
Un destructor es una función miembro especial de una clase. Se invoca cada vez que el objeto sale del ámbito. El objeto puede ser destruido cuando una función termina o al final de la ejecución del programa. El destructor tiene el mismo nombre que el nombre de la clase. El constructor se utiliza para crear el objeto. Puede aceptar parámetros. El constructor también puede tener valores de retorno. Pero en un Destructor, no hay ningún tipo de retorno o parámetros de aceptación. Una clase solo puede consistir en un destructor. Un destructor es referido usando el signo de tilde. Si el nombre de la clase es Estudiante, entonces el destructor es ~ Estudiante () .
El recolector de basura busca los objetos que ya no son necesarios. Asegura que los objetos que ya no son utilizados por el programa deben ser destruidos. Llama al destructor para liberar la memoria y desasignar los recursos. Los destructores son útiles para liberar memoria, cerrar archivos, liberar recursos de red y cerrar conexiones de base de datos. En la mayoría de los lenguajes de programación, no es necesario escribir el destructor porque el recolector de basura llama al constructor predeterminado por sí mismo. Si el programador ha realizado una asignación de memoria dinámica utilizando punteros en un lenguaje como C ++, debe escribir un destructor para liberar memoria antes de que se destruya el objeto..
Recolector de basura vs destructor | |
Un recolector de basura es un software que realiza la gestión automática de la memoria.. | Un destructor es un método especial llamado por el recolector de basura durante la destrucción del objeto.. |
Tipo | |
Un recolector de basura es un software.. | Un destructor es un método.. |
El recolector de basura y el destructor son dos términos asociados con la liberación de memoria. Este artículo discutió la diferencia entre el recolector de basura y el destructor. La diferencia entre el recolector de basura y el destructor es que un recolector de basura es un software que realiza la administración automática de memoria, mientras que un destructor es un método especial llamado por el recolector de basura durante la destrucción del objeto..
Puede descargar la versión en PDF de este artículo y utilizarla para fines fuera de línea según la nota de cita. Por favor descargue la versión PDF aquí: Diferencia entre recolector de basura y destructor
1.lyndapodcast. “Cómo funciona la recolección de basura en C # | Lynda Com tutorial ”. Cómo funciona la recolección de basura en C # | Tutorial de lynda.Com, LinkedIn Learning Solutions, 19 de septiembre de 2011. Disponible aquí
2.Destructores en C ". GeeksforGeeks, 27 de mayo de 2017. Disponible aquí
3.Jain, Shubham. "Recolector de basura y destructor en C #". C # Corner. Disponible aquí