Saltar al contenido

Pila y montón de Java: Tutorial de asignación de memoria de Java

¿Qué es Memory Stack?

La pila en Java es una parte de la memoria que contiene métodos, variables locales y variables de referencia. La memoria apilada siempre se hace referencia en el orden de último en entrar, primero en salir. Las variables locales se crean en el acero.

¿Qué es Heap Memory?

Una pila que contiene objetos es parte de la memoria y también puede contener variables de referencia. Las variables institucionales se crean en el montón

Asignación de memoria en Java

Asignación de memoria en Java el proceso por el cual las divisiones de memoria virtual se apartan en un programa para almacenar variables e instancias de estructuras y clases. Sin embargo, la memoria no se asigna a una declaración de objeto, sino que solo se crea una referencia. Para la asignación de memoria del objeto, se usa un nuevo método (), por lo que la memoria siempre se asigna al objeto en el montón.

La asignación de memoria de Java se divide en las siguientes secciones:

  1. Montón
  2. Apilar
  3. Código
  4. Statach

Este intercambio de memoria es necesario para gestionarlo de forma eficaz.

Diferencia entre variables locales e institucionales

Variable institucional declarado dentro de una clase pero no dentro de un modo

class Student{ 
int num; // num is  instance variable 
public void showData{}

Variable local declarado adentro a método que incluye método argumentos.

public void sum(int a){

int x = int a +  3;

// a , x are local variables;

}

Diferencia entre pila y montón

Hacer clic aquí si el video no es accesible

Tomemos un ejemplo para comprenderlo mejor.

Considere que su modo de llamada principal es m1


public void m1{
int x=20
}

En Java apilado, se creará un marco a partir del método m1.

La variable X en m1 se formará en el marco para m1 en el acero. (Ver imagen a continuación).

El modo M1 está llamando al modo m2. En el apilamiento de Java, se crea un nuevo marco para m2 encima del marco m1.

Las variables byc también se conformarán en marco m2 en acero.


public void m2(int b){
boolean c;
}

M2 es el mismo método que m3. Nuevamente, se crea un marco m3 sobre el acero (vea la imagen a continuación).

Ahora, digamos que nuestro método m3 está creando un objeto para la clase «Cuenta», que contiene dos instancias de variables int p e int q.


Account {
             Int p;
             Int q;
       }

Aquí está el código para el método m3


public void m3(){
	Account ref = new Account();
	// more code
}

El nuevo estado de cuenta () creará un objeto de cuenta en un montón.

La variable de referencia «etiqueta» se creará en Java apilado.

El operador de la tarea realizará una variable de referencia «=» para asignar un punto al objeto en el montón.

Cuando se completa el método. El flujo de control volverá al modo de llamada. Que en este caso método m2.

El acero del método m3 se eliminará.

Dado que la variable de referencia ya no hará referencia al objeto en el montón, sería elegible para la recolección de basura.

Cuando se completa el método m2. Se extraerá del acero y todas sus variables se eliminarán y ya no estarán disponibles para su uso.

Lo mismo para el método m1.

Finalmente, el flujo de control volverá al punto de inicio del programa. Que suele ser el método «principal».

¿Qué pasa si, por ejemplo, se hace referencia a Object como su variable?


public static void main(String args[]) {
  A parent = new A(); //more code } class A{ B child = new B(); int e; //more code } class B{ int c; int d;  //more code }

En este caso, la variable de referencia «hijo» se creará en un montón, que luego se centrará en su objeto, algo similar al diagrama que se muestra a continuación.

Resumen:

  • Cuando se le da un método, se crea un marco sobre el acero.
  • Cuando se completa el método de finalización, el flujo de control vuelve al modo de llamada y se vacía su marco de apilamiento correspondiente.
  • Las variables locales se crean en el acero.
  • Las variables institucionales se crean en el montón y forman parte del objeto al que pertenecen.
  • Las variables de referencia se crean en el acero.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *