Heim Java javaLernprogramm Erweiterte JVM-Funktionen – Einführung in den Java-Speicherstrukturbereich

Erweiterte JVM-Funktionen – Einführung in den Java-Speicherstrukturbereich

Jun 26, 2017 am 10:21 AM
java 内存 特性 结构 高级

Regionale Aufteilung:

Während der Ausführung des Programms unterteilt die Java Virtual Machine den Speicher in mehrere Bereiche mit unterschiedlichen Funktionen, wie unten gezeigt:

Dieses Bild listet die verschiedenen Bereiche der Speicheraufteilung auf, darunter

Thread-privat: Programmzähler, Stapel der virtuellen Maschine, lokal Methodenstapel

Thread-shared: Heap, Methodenbereich

Im Folgenden werden die Funktionen und Funktionen jedes Bereichs einzeln vorgestellt

Programmzähler:

1. Der Programmzähler wird hauptsächlich verwendet, um auf die ausgeführte Bytecode-Zeilennummer zu verweisen. Jeder Thread verfügt über einen separaten Programmzähler, der nicht mit jedem geteilt wird Andere. Durch Ändern dieses Zählers Zeigen Sie auf die Bytecode-Zeilennummer, um das Programm auszuführen

2. Schleifen, Sprünge, Ausnahmebehandlung und andere Mechanismen sind alle auf diesen Zähler angewiesen, um abgeschlossen zu werden

3. Wenn die Das Programm führt ein Java-Programm aus. Wenn die native Methode ausgeführt wird, ist ihr Wert leer

  Java Virtual Machine Stack:

1. Der Stapel der virtuellen Maschine ist für den Thread privat. Jede Methode erstellt bei der Ausführung einen Stapelrahmen, der zum Speichern von Informationen wie lokalen Variablentabellen, Methodenexits und dynamischen Links verwendet wird. und Operandenstapel. ,

2. Der Ausführungsprozess jeder Methode ist der Prozess eines Stapels einer virtuellen Maschine vom Einschieben bis zum Herausspringen

Viele Leute sagen oft, dass der Java-Speicher in Heap unterteilt ist Speicher und Stapelspeicher. Der Stapelspeicher bezieht sich auf den Stapel der virtuellen Maschine

. Die oben erwähnte lokale Variablentabelle speichert hauptsächlich die dem Compiler bekannten grundlegenden Datentypen (intbytecharlong usw.).

Erweiterung:

Objektreferenz: Nicht das Objekt selbst, es kann ein Referenzzeiger sein, der auf die Startadresse des Objekts zeigt, es kann ein Handle sein, das das Objekt oder andere verwandte Orte darstellt

returnaddress : ist kein Typ in der Java-API und kann von uns nicht aufgerufen werden. Es zeigt auf die Adresse einer Bytecode-Anweisung

 Lokal Methodenstapel

  Ähnlich wie beim Stapel der virtuellen Maschine ist es der Speicher, der native Methoden bedient

 Java-Heap

Heap-Speicher ist ein Thread-Shared-Speicher. Sein Hauptzweck ist die Speicherung von Objekten und er ist auch der Hauptbereich, der vom Garbage Collector verwaltet wird.

Der Java-Heap ist unterteilt in die neue Generation und die alte Generation, insbesondere über den Garbage-Collection-Mechanismus. Wird in nachfolgenden Artikeln vorgestellt

Methodenbereich (auch Nicht-Heap genannt)

Es ist auch ein gemeinsam genutzter Speicher, der zum Speichern geladener Klasseninformationen, Konstanten, statischer Variablen, vom Just-in-Time-Compiler kompiliertem Code usw. verwendet wird.

Laufzeitkonstante pool: Es ist Teil des Methodenbereichs und wird zum Speichern verschiedener vom Compiler generierter Literale und Symbole verwendet. Zitat

Direkter Speicher:

Es ist nicht Teil des Laufzeitdatenbereichs der virtuellen Maschine und gehört nicht zum von der JVM verwalteten Speicher.

  In NIO können Sie die native Funktion verwenden, um direkten Speicher direkt zuzuweisen Betreiben Sie es über das DirectByteBuffer-Objekt in Java als Referenz auf diesen Speicher

  Vorteile: Spart die Schritte des Speicherkopierens und ist effizienter. Schnell

Nachteile: schwer zu steuern, leicht zu verursachender Speicher Lecks

Das obige ist der detaillierte Inhalt vonErweiterte JVM-Funktionen – Einführung in den Java-Speicherstrukturbereich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Quellen zufolge werden Samsung Electronics und SK Hynix nach 2026 gestapelten mobilen Speicher kommerzialisieren Quellen zufolge werden Samsung Electronics und SK Hynix nach 2026 gestapelten mobilen Speicher kommerzialisieren Sep 03, 2024 pm 02:15 PM

Laut Nachrichten dieser Website vom 3. September berichteten die koreanischen Medien etnews gestern (Ortszeit), dass die „HBM-ähnlichen“ mobilen Speicherprodukte mit Stapelstruktur von Samsung Electronics und SK Hynix nach 2026 kommerzialisiert werden. Quellen zufolge betrachten die beiden koreanischen Speichergiganten gestapelten mobilen Speicher als wichtige zukünftige Einnahmequelle und planen, den „HBM-ähnlichen Speicher“ auf Smartphones, Tablets und Laptops auszudehnen, um End-Side-KI mit Strom zu versorgen. Früheren Berichten auf dieser Website zufolge heißt das Produkt von Samsung Electronics LPWide I/O-Speicher und SK Hynix nennt diese Technologie VFO. Die beiden Unternehmen haben ungefähr den gleichen technischen Weg gewählt, nämlich die Kombination von Fan-Out-Verpackungen und vertikalen Kanälen. Der LPWide I/O-Speicher von Samsung Electronics hat eine Bitbreite von 512

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

See all articles