Sobes.tech
Junior

¿Qué son heap y stack?

sobes.tech AI

Respuesta de la IA

Heap y Stack son dos áreas de memoria utilizadas por los programas para almacenar datos.

  • Stack (pila) es un área de memoria donde se almacenan variables locales, parámetros de funciones y direcciones de retorno. Funciona bajo el principio LIFO (último en entrar, primero en salir). Cuando se llama a una función, se asigna un bloque en la pila, y después de finalizar, se libera. La pila tiene un tamaño limitado y se gestiona automáticamente.

  • Heap (montón) es un área de memoria para la asignación dinámica de objetos y datos, cuyo tamaño puede cambiar durante la ejecución del programa. En Java, los objetos se crean en el montón, y el recolector de basura libera automáticamente la memoria no utilizada.

Ejemplo:

public void ejemplo() {
    int a = 10; // almacenado en la pila
    String s = new String("Hola"); // objeto String creado en el montón
}

Aquí, a es una variable local en la pila, y el objeto String está en el montón.