Partitionnement de la mémoire Java :
Dans l'allocation de mémoire Java, Java divise la mémoire en : zone de méthode, tas, pile de machine virtuelle, pile de méthodes locale et compteur de programme. La zone de méthode et le tas sont partagés par tous les threads, tandis que la pile de machines virtuelles, la pile de méthodes locales et le compteur de programme sont isolés par les threads. Chaque zone a son propre temps de création et de destruction.
Compteur de programme :
Il est utilisé comme indicateur de numéro de ligne des octets exécutés par le thread actuel. Le multithreading de Java est implémenté en changeant de thread à tour de rôle et en allouant du temps d'exécution au processeur. Par conséquent, pour que chaque thread revienne à sa position correcte après la commutation, chaque thread a besoin d'un compteur de programme indépendant.
Pile de machines virtuelles Java :
Lorsque chacun est exécuté, un cadre de pile sera créé en même temps pour stocker les tables de variables locales, les piles d'opérandes, les liens dynamiques, les sorties de méthode et d'autres informations. La pile de mémoire virtuelle est ce que nous appelons souvent la « pile ». La mémoire requise pour la table de variables locales est allouée au moment de la compilation.
Pile de méthodes locales :
Semblable à la pile de machines virtuelles, la différence est que la pile de machines virtuelles exécute les services de méthode Java pour la machine virtuelle, tandis que la pile de méthodes locale sert la machine virtuelle à l'aide de méthodes natives.
Tas Java :
Partagé par tous les programmes et créé au démarrage de la machine virtuelle. Cette zone mémoire est utilisée pour stocker les instances d'objets. Selon la réglementation des machines virtuelles Java, le tas Java peut se trouver dans un espace mémoire physiquement discontinu tant qu'il est logiquement continu.
Domaine méthode :
Identique au tas, partagé entre les threads. Sa fonction est de stocker des données telles que des informations de classe, des constantes, des variables statiques, du code compilé par le compilateur juste à temps, etc. qui ont été chargées par la machine virtuelle.
Pool de constantes d'exécution :
Fait partie du domaine méthode. Sa fonction est de stocker diverses références littérales et symboliques générées lors de la compilation.