Maison >Java >javaDidacticiel >Introduction détaillée à l'accès aux objets dans la machine virtuelle Java (image)
Cet article présente principalement les informations pertinentes sur l'explication détaillée de l'accès objet dans la machine virtuelle Java. Les amis qui en ont besoin peuvent se référer à
Explication détaillée de l'objet. l'accès dans la machine virtuelle Java
L'accès aux objets impliquera trois zones de mémoire : la pile Java, le tas Java et la zone de méthode.
Comme le code suivant :
Object objectRef = new Object();
En supposant que ce code apparaisse dans le corps de la méthode, la partie "Object objectRef" sera reflétée dans les variables locales de la stack Java , apparaît comme une donnée de type référence. La partie "new Object()" sera reflétée dans le tas Java, formant une mémoire structurée qui stocke toutes les valeurs de données d'instance du type Classe d'objet , en fonction du type spécifique et de la disposition de la mémoire de l'objet. implémentée par la machine virtuelle. Autrement, la longueur de cette mémoire n'est pas fixe. De plus, le tas Java doit également inclure des informations d'adresse qui peuvent trouver les données de ce type d'objet (telles que le type d'objet, la classe parent, l'interface implémentée, les méthodes, etc.). zone.
Le type de référence dans la spécification de la machine virtuelle Java stipule uniquement une adresse de référence pointant vers l'objet, et ne définit pas comment cette référence doit être localisée et accéder à l'emplacement de l'objet dans le tas Java, donc différent. les implémentations de machines virtuelles peuvent avoir différentes méthodes d'accès. Il existe deux méthodes principales : l'utilisation de handles et de pointeurs directs.
La méthode d'accès au handle : La pile Java sera divisée en un morceau de mémoire au fur et à mesure que le pool de handles est stocké dans la référence, et le descripteur contient les données d'instance d'objet et les informations d'adresse spécifiques respectives des données de type.
Méthode d'accès par pointeur : La variable de référence stocke directement l'adresse de l'objet, tandis qu'une partie de l'objet tas Java stocke les données d'instance d'objet, et le l'autre partie stocke les données de type objet.
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!