Heim >Java >javaLernprogramm >Detaillierte Einführung in den Objektzugriff in der Java Virtual Machine (Bild)

Detaillierte Einführung in den Objektzugriff in der Java Virtual Machine (Bild)

黄舟
黄舟Original
2017-03-25 10:36:201384Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zur detaillierten Erläuterung des Objekt-Zugriffs in der Java Virtual Machine vorgestellt. Freunde, die diese benötigen, können sich auf

Detaillierte Erläuterung des Objekts beziehen Zugriff in der Java Virtual Machine

Der Objektzugriff umfasst drei Speicherbereiche: Java-Stack, Java-Heap und Methodenbereich.

Zum Beispiel der folgende Code:

Object objectRef = new Object();

Unter der Annahme, dass dieser Code im Methodenkörper erscheint, wird der Teil „Object objectRef“ in den lokalen Variablen des Java-Stacks widergespiegelt , erscheint als Referenztypdaten. Der Teil „new Object()“ spiegelt sich im Java-Heap wider und bildet einen strukturierten Speicher, der alle Instanzdatenwerte des Typs Object class entsprechend dem spezifischen Typ und dem Objektspeicherlayout speichert Anders ausgedrückt ist die Länge dieses Speichers nicht festgelegt. Darüber hinaus muss der Java-Heap auch Adressinformationen enthalten, mit denen diese Objekttypdaten gefunden werden können (z. B. Objekttyp, übergeordnete Klasse, implementierte Schnittstelle, Methoden usw.). Diese Datentypen werden in der Methode gespeichert Bereich.

Der Referenztyp in der Java Virtual Machine-Spezifikation legt nur eine Referenzadresse fest, die auf das Objekt verweist, und definiert nicht, wie diese Referenz lokalisiert werden und auf den Objektspeicherort im Java-Heap zugreifen soll Implementierungen virtueller Maschinen können unterschiedliche Zugriffsmethoden haben. Es gibt zwei gängige Methoden: die Verwendung von Handles und direkten Zeigern.

Die Zugriffsmethode des Handles : Der Java-Stapel wird als Handle-Pool in einen Teil des Speichers unterteilt. Die Handle-Adresse des Objekts wird in der Referenz gespeichert. und das Handle enthält die jeweiligen spezifischen Adressinformationen der Objektinstanzdaten und Typdaten.

Detaillierte Einführung in den Objektzugriff in der Java Virtual Machine (Bild)

Zeigerzugriffsmethode: Die Referenzvariable speichert direkt die Adresse des Objekts, während ein Teil des Java-Heap-Objekts Objektinstanzdaten speichert Der andere Teil speichert Objekttypdaten.

Diese beiden Methoden zum Zugriff auf Objekte haben ihre eigenen Vorteile. Der größte Vorteil der Verwendung der Handle-Zugriffsmethode besteht darin, dass die Referenz eine stabile Handle-Adresse speichert, die nur vorhanden sein muss Der Instanzdatenzeiger im Handle wird geändert, und die Referenz muss nicht geändert werden. Der größte Vorteil der Verwendung der Zeigerzugriffsmethode besteht darin, dass sie den Zeitaufwand für die Zeigerpositionierung einspart. Für die virtuelle Maschine wird die zweite Methode verwendet (direkter Zeigerzugriff).

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Objektzugriff in der Java Virtual Machine (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn