¿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.