ubiquitour.com

Montón contra pila en Java

Montón contra pila en Java

Programas en Java usan memoria de computadora de diferentes maneras. Si los programadores de Java tienen al menos una comprensión básica de cómo se gestiona la memoria dentro del lenguaje, tienen una mejor oportunidad de crear aplicaciones de desempeño eficientes, de altas. Como con la mayoría de los aspectos de la programación, no es necesario entender todos los detalles de 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

Variables de Java modelo de componentes de datos y código de varias maneras. Dependiendo del tipo y alcance de una variable, puede ser almacenado en memoria de montón o pila. Memoria de pila puede considerarse a corto plazo, montón como a largo plazo. Cuando te acercas a un proyecto de desarrollo en Java, usted tendrá decisiones continua sobre cómo el modelo de los elementos de datos, que va a determinar en que tipo de memoria se almacenan. Tomar estas decisiones con una comprensión de las consecuencias permite a los desarrolladores a maximizar la eficacia del programa.

Primitivas de

Tipos primitivos en Java son básica número 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 la variable, por lo que la cantidad de uso de la memoria tiende a ser más pequeño que con tipos de objeto. Si una variable de tipo primitivo existe sólo como una variable local dentro de un archivo de clase de aplicación, Java almacena en la memoria de pila.

Objetos

Tipos de objetos en Java incluyen los tipos en el lenguaje en sí mismo y tipos definidos por los programadores usando declaraciones de clase. Cuando un programa Java crea un objeto, la JVM (Java Virtual Machine) asigna una sección de memoria de montón para él. Dentro del programa, el nombre de la variable de 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 en el objeto, incluyendo variables de cualquier tipo, ya sea primitivo o un objeto.

Ámbito de variable

Ámbito de variable tiene un impacto directo en la gestión de memoria dentro de un programa de Java. Para crear aplicaciones eficientes, los desarrolladores tratan de minimizar el alcance necesario para cualquier variable dada o elemento de datos. Por ejemplo, el siguiente demuestra una sentencia condicional con una variable local dentro de ella:

int someNumber = 3;

if(someNumber>0) {}

int doubleNumber = someNumber * 2;

System.out.println(doubleNumber);

}

En este ejemplo trivial realiza un cálculo en una variable, escribir el resultado. La variable que almacena el resultado del cálculo es declarado dentro de la condicional, así que no es accesible en cualquier momento después el bloque condicional. En general, dando las variables la cantidad mínima de alcance necesario para que funcione correctamente ayuda a que los programas utilizan como poca memoria como sea posible.

Recolección de basura

El recolector de basura de la JVM gestiona la cantidad de memoria que está disponible a un programa. Si un objeto u otro tipo ya no se usa dentro de una aplicación (por ejemplo, si ha realizado su función y ya no es necesario), la memoria que se utiliza idealmente convendría otra vez si es necesario. El recolector de basura es capaz de reasignar memoria montón si una aplicación se ejecuta bajo en recursos de memoria. Si una variable de objeto está fuera de alcance, su memoria puede ser un candidato para la recolección de basura.