¿Qué significa "pila" en Java?

La pila es el espacio de memoria que asigna el ordenador al programa para almacenar datos.

La memoria es un componente importante en un sistema informático. Se utiliza para guardar programas y datos cuando se ejecuta un proceso. En las computadoras, el espacio de memoria generalmente se refiere al espacio de memoria principal (espacio de direcciones físicas) o al espacio de memoria asignado por el sistema para un programa de usuario. Los métodos para ampliar el espacio de la memoria generalmente incluyen aumentar el tamaño de la memoria y la memoria virtual.

El programa fuente se ensambla o compila y luego el editor de enlaces lo procesa para formar el módulo ensamblador del programa, y ​​el módulo se convierte en direccionamiento de dirección relativa. Se direcciona secuencialmente con 0 como dirección base.

La dirección relativa también se llama dirección lógica o dirección virtual. El espacio compuesto por direcciones relativas en el programa se llama espacio de direcciones lógicas. El espacio de direcciones relativo se convierte en un espacio de direcciones absoluto mediante el mecanismo de reubicación de direcciones. El espacio de direcciones absoluto también se denomina espacio de direcciones físicas.

El espacio de memoria generalmente se refiere al espacio de memoria principal (espacio de direcciones físicas) o al espacio de memoria asignado por el sistema para un programa de usuario. El sistema asigna espacio de memoria para un programa de usuario de cuatro maneras: asignación continua única, asignación de partición fija, asignación de partición dinámica y asignación de partición de reubicación dinámica.

Para facilitar la asignación de memoria, las particiones generalmente se ponen en cola según el tamaño y se establece una tabla de uso de partición para ellas. Cada entrada de la tabla incluye la dirección inicial, el tamaño y el estado de cada partición (si la tiene). sido asignado).

Cuando se va a cargar un programa de usuario, el programa de asignación de memoria recupera la tabla, encuentra una partición no asignada que cumple con los requisitos, la asigna al programa y luego asigna la entrada de la tabla al programa. el estado en se establece en "asignado"; si no se encuentra una partición de tamaño suficiente, se rechaza la asignación de memoria para el programa de usuario.