Desarrolladores de Java creado con dos objetivos principales en mente. En primer lugar, crear un lenguaje de programación basado completamente siguiendo un paradigma orientado a objetos . En segundo lugar, para que el lenguaje Java se ejecutan en la parte superior de la máquina virtual de Java ( JVM ) asegurar la portabilidad entre plataformas . Porque Java corriendo en la JVM y no lo hizo interactuar directamente con el hardware , la JVM podría manejar muchos de los problemas inherentes a la programación orientada a objetos , es decir, la gestión de memoria . El proceso a través del cual la JVM maneja la memoria se llama " la recolección de basura . " Para entender la colección, un programador tiene que entender los conceptos de programación orientada a objetos , incluyendo cómo se gestiona la memoria. Programación
programación orientada a objetos orientada a objetos (POO ) representa un paradigma de programación en el que los programadores crear datos "objetos" como parte de su código. Los programadores utilizan estos objetos para representar tipos de datos complejos que contienen tanto un estado y exhibir ciertos comportamientos. Así , por ejemplo , un programador crea una clase de " Sphere " de un programa que hace los trabajos que impliquen cálculos de las esferas. La clase Sphere puede contener datos de un radio de ( su estado ) y una función para el cálculo de su propia área ( su comportamiento ) .
Objetos y Memoria
Java y C + + son lenguajes de programación orientada a objetos . Sin embargo , la diferencia entre los dos ilustra la necesidad de recolección de basura en Java. En C + + , un programador trata directamente con el sistema operativo. Esto significa que cuando un programador desea crear un objeto, que puede hacer una de dos cosas . En primer lugar , puede crear una copia de "superficial " durante el proceso de codificación. En segundo lugar, y más común , puede escribir código que crea objetos dinámicamente en la memoria "de profundidad " durante la ejecución de código mediante el uso de " punteros ".
Punteros y pérdidas de memoria
C + + programa utiliza indicadores para asignar memoria durante la ejecución del código. Un " puntero " contiene una referencia a una ubicación de memoria . Cuando un programador necesita para diseñar código que crea los objetos en tiempo de ejecución , se utiliza punteros para referenciar memoria reservada para la creación de objetos . Ese indicador es entonces lo único que hace referencia a ese objeto. Si el programa de mover el puntero de referencia durante la ejecución , el objeto ", señaló " ya no se puede utilizar. Simplemente se sienta en la memoria y no hay forma de acceder a ella . Cuando se crean una gran cantidad de objetos a través de punteros y se dejan en la memoria debido a la pérdida de referencia de puntero , esto se conoce como una " pérdida de memoria " y puede causar problemas serios en un programa.
Garbage Collection
en C + + , la responsabilidad de la gestión de la memoria y la prevención de pérdidas de memoria entra de lleno en el programador . El lenguaje Java, a diferencia de C + + , se ejecuta en la JVM , abstraído del sistema operativo. Debido a esto , el programador puede ignorar la gestión de la memoria del sistema en lo que respecta objetos . Más bien, la JVM tiene tablas sobre los objetos y las referencias existentes , y elimina los que ya no están en uso. De esta manera , la tarea de gestionar la memoria cae en la JVM , y el programador puede trabajar en diferentes tareas , mientras que confía en que la gestión de memoria es atendido .
Recolección de basura y la JVM 1.4.1 < br >
la versión 1.4.1 de JVM ofrece un modelo para la recolección de basura . La JVM utiliza un paradigma de división de edad , mientras que los objetos "jóvenes" y objetos "viejos" existe en la memoria . La JVM puede promover objetos pequeños a los objetos antiguos basados en la frecuencia se copian los objetos pequeños durante la ejecución del programa. Objetos antiguos , a continuación , se consideran importantes y , por lo tanto , no marcado para su eliminación . El sistema de recolección de basura 1.4.1 JVM utiliza un método de "tren " de la recolección /eliminación, al permitir el aumento de la recolección de basura pequeño pasa más que colecciones más grandes y más lentas. Asimismo, la 1.4.1 JVM se aprovecha de los sistemas de multiprocesamiento , ofreciendo la recolección simultánea en varios procesadores .