Der folgende Editor bringt Ihnen einen Artikel über den Prozess der Java-Speicherung und der Erstellung von JavaObjekten (ausführliche Erklärung). Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor, um einen Blick darauf zu werfen.
Java-Speicher:
1) Registrieren: Dies ist der schnellste Speicherbereich und befindet sich im Prozessor. Da die Anzahl der Register jedoch begrenzt ist, werden die Register je nach Bedarf zugewiesen. Wir können es nicht direkt machen.
2) Stack: befindet sich im allgemeinen RAM und kann über den Stack-Pointer direkte Unterstützung vom Prozessor erhalten. Wenn sich der Stapelzeiger nach unten bewegt, wird neuer Speicher zugewiesen. Wenn Sie online gehen, wird Speicherplatz frei. Aber
Sie müssen beim Erstellen des Programms den spezifischen Lebenszyklus aller im Stapel gespeicherten Elemente kennen, um den Zeiger nach oben und unten bewegen zu können. Speichern Sie im Allgemeinen grundlegende Typen und Java-Objekt--Referenzen .
3) Heap: befindet sich im allgemeinen RAM und speichert alle Java-Objekte, ohne den spezifischen Lebenszyklus zu kennen.
4) Konstante Speicherung: Konstante Werte werden normalerweise direkt im Programmcode gespeichert.
5) Nicht-RAM-Speicher: Daten verbleiben vollständig außerhalb des Programms, unterliegen nicht der Kontrolle des Programms und können vorhanden sein, wenn das Programm nicht ausgeführt wird . Dabei geht es darum, Objekte in Dinge umzuwandeln, die auf anderen Medien gespeichert werden können. Zum Beispiel: Stream-Objekte, persistente Objekte
Prozess der Objekterstellung:
1): Auch wenn es keinen expliziten Aufruf von static gibt, ist der Konstruktor tatsächlich eine statische-Methode. Daher muss der Java-Interpreter beim ersten Erstellen eines Objekts oder beim ersten Aufrufen einer statischen Methode/eines statischen Felds den Klassenpfad durchsuchen und die Datei Klasse finden.
2): lädt die Klassendatei und die statischen Methoden oder Variablen werden ausgeführt. Daher wird die statische Initialisierung nur einmal initialisiert, wenn die Klasse geladen wird.
3): Wenn mit new erstellt wird, wird zunächst ausreichend Speicherplatz für das Objekt auf dem Heap zugewiesen.
4): Löschen Sie diesen Bereich. Zu diesem Zeitpunkt werden die grundlegenden Mitgliedsvariablen oder Referenzen im Objekt standardmäßig automatisch initialisiert. Die Zahl ist Null und die Referenz ist null.
5): Führen Sie alle Initialisierungsaktionen aus, die bei der Felddefinition angezeigt werden.
6): führt den Konstruktor aus.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Java-Speicher und den Java-Objekterstellungsprozess. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!