- Il est très important de comprendre la zone de mémoire où les objets, les variables, etc. sont stockés dans Java
- Cet article expliquera en détail le modèle de mémoire et le partitionnement dans la machine virtuelle Java I. j'espère que ça vous plaira
Répertoire
1. Modèle de mémoire et partition
Lorsque la machine virtuelle Java exécute un programme Java, elle gère une zone mémoire : la zone de données d'exécution.
Dans la zone des données d'exécution, elles seront réparties selon l'utilisation :
Pile de machines virtuelles Java (zone de pile)
-
-
Ci-dessous, je présenterai chaque partition de modèle de mémoire en détail
-
2. Java堆
3. Java虚拟机栈
4. 本地方法栈
Introduction : Très similaire à la pile de machines virtuelles Java, la différence avec la machine virtuelle Java est : l'objet de service, c'est-à-dire la pile de machines virtuelles Java sert à exécuter des méthodes Java ; la pile de méthodes locales sert à exécuter les méthodes natives
5. 方法区
6. 程序计数器
7. 额外知识:直接内存
- Définition : Les méthodes d'E/S basées sur les canaux et les tampons de la classe NIO (introduites dans JDK1.4) sont directement allouées à la mémoire hors tas à l'aide de la bibliothèque de fonctions natives
- Caractéristiques : Non affecté par la taille du tas Limitations
Ne fait pas partie de la zone de données d'exécution de la machine virtuelle et n'est pas alloué dans le tas
- Scénarios d'application : Convient aux appels fréquents
fonctionne via un objet DirectByteBuffer stocké dans le tas Java comme référence à cette mémoire, évitant ainsi la copie des données entre le tas Java et le tas natif, améliorant ainsi les performances d'utilisation
- Exceptions levées : OutOfMemoryError , c'est-à-dire que la somme des autres zones de mémoire est supérieure à la limite de mémoire physique
Résumé
.Cet article explique en détail le modèle de mémoire et le partitionnement dans JVM, résumé comme suit
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!