¿ Java utiliza un sistema de recolección de basura para la gestión de la memoria. Si bien esto tiene una carga excepcional de la promotora - que ya no tiene que asegurar los objetos se eliminan de forma manual desde la memoria cuando ya no están en uso - también puede quitar algunas funciones que los desarrolladores de otros orígenes pueden estar acostumbrados a . Mientras que la funcionalidad finalizar no es exactamente el mismo que un destructor C + + , que puede ser considerado el más cercano a un análogo del lenguaje Java proporciona . Descripción rápida de Colección
La recolección de basura
basura es uno de los temas más avanzados en programación Java. En sentido estricto, los desarrolladores de Java pueden pasar toda su carrera sin necesidad de saber mucho sobre el recolector de basura y cómo funciona . Esencialmente, cada objeto creado en un programa Java se ha registrado en el tiempo de ejecución de Java, junto con un recuento de todos los lugares que hay una referencia existente a ese objeto . Cuando un objeto ya no es mencionado por ningún otro objeto , el sistema lo marca para la recolección , y la próxima vez que el recolector de basura se ejecuta , borra ese objeto.
Memory Management Basic en C + + < br >
cosas son diferentes en otros lenguajes de programación como C + +, por ejemplo. En C + + , el programador controla cuando un objeto se elimina de la memoria , en comparación con el sistema . Esto se conoce como " administración de memoria determinista ", y tiene tanto sus pros y sus contras. El lado positivo principal para esto es que el desarrollador sabe exactamente cuando en el código se elimina el objeto . Sin embargo , es muy fácil de eliminar un objeto que puede estar todavía en uso en otra parte del código .
Destructores y finalizar
En C + + , los desarrolladores pueden añadir un destructor de una clase , que es un método que se llama cada vez que se elimina un objeto . Esto permite al desarrollador para ejecutar código cuando ya no se necesita el objeto , tal vez para borrar sus hijos o para limpiar los recursos . En Java, el sistema proporciona el método finalize , que los desarrolladores pueden reemplazar para proporcionar una funcionalidad similar. La principal diferencia es que el método finalize se llama cada vez que el tiempo de ejecución determina que el objeto no tiene más referencias y se puede recoger .
Uso con precaución
Aunque puede concluir proporciona una funcionalidad similar a C + + destructor ' s , lo que realmente se debe utilizar con cuidado. En términos generales, mientras se invalida el método finalize puede estar perfectamente bien para la mayoría de los casos , usted no debe confiar en ella para asegurar los recursos se limpian en un momento particular. Por ejemplo , si tiene una conexión de base de datos abierta en un objeto que se cerró en finalizar , todavía puede potencialmente crear demasiadas conexiones a la base de datos y pasar el límite de la base de datos antes de que el recolector de basura ha finalizado todos los objetos - incluso si usted no ya tiene referencias a ellos en cualquier lugar.