Maison  >  Article  >  Java  >  Apprentissage de la machine virtuelle Java - Accès aux objets

Apprentissage de la machine virtuelle Java - Accès aux objets

黄舟
黄舟original
2017-03-18 17:51:441477parcourir

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 pile Java en tant que référence les données de type apparaissent. 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 Object. La longueur de cette mémoire dépend du type spécifique et de la disposition de la mémoire objet implémentée par. la machine virtuelle. Elle n'est pas corrigée. De plus, le tas Java doit également inclure des informations d'adresse permettant de trouver les données de ce type d'objet (telles que le type d'objet, la classe parent, l'interface implémentée, la méthode, etc.). Ces types de données sont stockés dans la zone de méthode.

Le type référence stipule uniquement une adresse de référence pointant vers l'objet dans la spécification de la machine virtuelle Java. Il ne définit pas la manière dont cette référence doit être localisée pour accéder à l'emplacement de l'objet dans le tas Java. différentes machines virtuelles Les méthodes d'accès implémentées par la machine peuvent être différentes. 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 car le pool de handles est stocké dans la référence, et le handle est stocké. contient les données d'instance d'objet et les données de type, les informations d'adresse spécifiques respectives.

Méthode d'accès au pointeur  : la variable de référence stocke directement l'adresse de l'objet, et une partie de l'objet tas Java stocke les données de l'instance d'objet, et l'autre partie stocke les données de type objet.


Ces deux façons d'accéder aux objets ont leurs propres avantages. Le plus grand avantage de l'utilisation de la méthode d'accès par handle est que la référence stocke une adresse de handle stable lorsque le. l'objet se déplace Seul le pointeur de données d'instance dans le handle doit être modifié et la référence n'a pas besoin d'être modifiée. Le plus grand avantage de l'utilisation de la méthode d'accès par pointeur est qu'elle est rapide. Elle permet d'économiser le temps nécessaire au positionnement du pointeur. En ce qui concerne la machine virtuelle, elle utilise la deuxième méthode (accès direct par pointeur).

Ce qui précède est le contenu de l'apprentissage de la machine virtuelle Java - accès aux objets. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Articles connexes :

Explication détaillée de la machine virtuelle Java

Compréhension approfondie de la machine virtuelle Java

Java Virtual Machine Learning - Mécanisme de chargement de classe

Java Virtual Machine Learning - Allocation et recyclage de la mémoire des objets

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn