Partición de memoria Java:
En la asignación de memoria de Java, Java divide la memoria en: área de método, montón, pila de máquina virtual, pila de método local y contador de programa. El área del método y el montón son compartidos por todos los subprocesos, mientras que la pila de la máquina virtual, la pila del método local y el contador del programa están aislados por subprocesos. Cada zona tiene su propio tiempo de creación y destrucción.
Contador de programa:
Se utiliza como indicador de número de línea de los bytes ejecutados por el hilo actual. El subproceso múltiple de Java se implementa cambiando los subprocesos por turnos y asignando tiempo de ejecución del procesador. Por lo tanto, para que cada hilo vuelva a su posición correcta después del cambio, cada hilo necesita un contador de programa independiente.
Pila de máquinas virtuales Java:
Cuando se ejecuta cada uno, se creará un marco de pila al mismo tiempo para almacenar tablas de variables locales, pilas de operandos, enlaces dinámicos, salidas de métodos y otra información. La pila de memoria virtual es lo que a menudo llamamos "pila". La memoria requerida para la tabla de variables locales se asigna en el momento de la compilación.
Pila de métodos locales:
De manera similar a la pila de máquinas virtuales, la diferencia es que la pila de máquinas virtuales ejecuta servicios de métodos Java para la máquina virtual, mientras que la pila de métodos locales sirve a la máquina virtual utilizando métodos nativos.
montón de Java:
Compartido por todos los programas y creado cuando se inicia la máquina virtual. Esta área de memoria se utiliza para almacenar instancias de objetos. De acuerdo con las regulaciones de la máquina virtual Java, el montón de Java puede estar en un espacio de memoria físicamente discontinuo siempre que sea lógicamente continuo.
Área de método:
Igual que el montón, compartido entre hilos. Su función es almacenar datos como información de clase, constantes, variables estáticas, código compilado por el compilador justo a tiempo, etc. que han sido cargados por la máquina virtual.
Grupo constante de tiempo de ejecución:
Es parte del área del método. Su función es almacenar varias referencias literales y de símbolos generadas durante la compilación.