programas Java utilizan la memoria del ordenador de diferentes maneras. Si los programadores de Java tienen al menos un conocimiento básico de cómo se gestiona la memoria dentro de la lengua , que tienen una mejor oportunidad de crear aplicaciones de alto rendimiento , eficientes. Al igual que con la mayoría de los aspectos de la programación , no es necesario conocer todos los detalles de la implementación del modelo de gestión de memoria de Java, pero agarrando los dos tipos básicos de memoria y su impacto en la programación es útil . Tipos y memoria
Java variables de datos de modelos y componentes de código en varias formas . Dependiendo del tipo y el alcance de una variable , se puede almacenar ya sea en el montón o pila de la memoria . La pila de memoria puede ser pensado como a corto plazo , montón como a largo plazo . Cuando te acercas a un proyecto de desarrollo en Java, usted tendrá que tomar decisiones continuas sobre cómo modelo de elementos de datos , lo que determinará en qué tipo de memoria que se almacenan. Tomar estas decisiones con una comprensión de las implicaciones permite a los desarrolladores a maximizar la eficiencia del programa .
Primitives
tipos primitivos de Java como referencia básica y tipos de caracteres como " int" para valores enteros primitivos y " char" para los caracteres primitivos. Cuando Java almacena tipos primitivos , la información almacenada consiste en gran parte de los valores de las variables , por lo que la cantidad de uso de la memoria tiende a ser más pequeño que con los tipos de objetos . Si una variable de tipo primitivo existe sólo como una variable local dentro de un archivo de clase de aplicación , Java almacenará en la memoria de pila.
Objetos
tipos de objetos
Java incluye tanto los tipos previstos en el propio lenguaje y tipos definidos por los programadores que utilizan declaraciones de clase . Cuando un programa Java crea un objeto, la JVM ( Java Virtual Machine ) asigna una sección de la memoria heap por ello. Dentro del programa , el nombre de la variable asignado para un tipo de objeto actúa como una referencia a esta ubicación en la memoria . El espacio de un objeto dentro de la memoria heap puede contener los datos dentro del objeto , incluyendo las variables de cualquier tipo , ya sea .
Variable Scope
alcance variable primitiva u objeto tiene un impacto directo en la gestión de memoria dentro de un programa Java. Para crear aplicaciones eficaces , los desarrolladores tratan de minimizar el alcance requerido para cualquier variable dada o elemento de datos . Por ejemplo , la siguiente muestra una sentencia condicional de una variable local dentro de él :
someNumber int = 3 ;
if ( someNumber > 0 ) { int
doubleNumber = someNumber * 2 ;
System.out.println ( doubleNumber ) ;
}
Este ejemplo trivial realiza un cálculo en una variable , escribiendo el resultado fuera . La variable que almacena el resultado del cálculo se declara dentro de la condicional , por lo que no es accesible en cualquier punto después de que el bloque condicional . En general , lo que las variables de la cantidad mínima de alcance necesarios para que funcionen correctamente ayuda a programas utilizan tan poca memoria como sea posible.
Garbage Collection
Garbage Collector JVM gestiona la cantidad de memoria que está disponible para un programa . Si un tipo de objeto u otro ya no se utiliza dentro de una aplicación (por ejemplo, si ha cumplido su función y ya no es necesario) , la memoria que utiliza idealmente debe ser nuevamente puesto a disposición si es necesario. El recolector de basura es capaz de reasignar la memoria heap si una aplicación se está quedando sin recursos de memoria. Si una variable de objeto está fuera de su alcance, su memoria puede ser un candidato para la recolección de basura .