¿Cuál es el tamaño del espacio de pila de cada función en Java?
Cuando el programa Java se está ejecutando, el tamaño de cada espacio de pila es el siguiente:
(1) Registrarse. El área de guardado más rápida, ubicada dentro del procesador, tiene un número muy limitado y el compilador la asigna según sea necesario. No tenemos control directo sobre esto.
(2) Pila. Al residir en un área RAM (memoria de acceso aleatorio) normal, esta es una forma extremadamente rápida y eficiente de guardar datos, solo superada por los registros. Al crear un programa, el compilador de Java debe saber exactamente la "longitud" y el "tiempo de existencia" de todos los datos contenidos en la pila. Esto pierde algo de flexibilidad, por lo que el identificador del objeto se almacena en la pila, pero el objeto Java no se coloca en ella.
(3) Montón. Los objetos Java se guardan. A diferencia de la pila, lo más atractivo es que el compilador no necesita saber cuánto espacio de almacenamiento asignar del montón, ni necesita saber cuánto tiempo permanecerán los datos almacenados en el montón. Por lo tanto, obtendrá una mayor flexibilidad al utilizar el montón para guardar datos. Cuando se le solicita que cree un objeto, solo necesita usar el nuevo comando para compilar el código relevante. Cuando se ejecutan estos códigos, los datos se guardarán automáticamente en el montón. Por supuesto, esta flexibilidad tiene un precio: ¡se necesita más tiempo para asignar espacio de almacenamiento en el montón!
(4) Almacenamiento estático. "Estático" aquí significa "ubicado en una ubicación fija" (aunque también está en la RAM). Mientras el programa se ejecuta, los datos almacenados estáticamente estarán esperando ser llamados en cualquier momento. Puede utilizar la palabra clave estática para indicar que un elemento específico de un objeto es estático. Pero los objetos Java en sí nunca se colocan en un espacio de almacenamiento estático.
(5) Almacenamiento constante. Los valores constantes generalmente se colocan directamente dentro del código del programa. Esto es seguro porque nunca cambian. Algunas constantes deben estar estrictamente protegidas, así que considere colocarlas en una memoria de solo lectura (ROM).
(6) Almacenamiento no RAM. Los datos son completamente independientes de un programa, pueden existir cuando el programa no se está ejecutando y están fuera del control del programa.