Die Java Virtual Machine stellt die Basis der Programmiersprache Java. Die Software fungiert als Puffer zwischen einer Implementierung von Java-Code und der zugrunde liegenden Computer-System. Dies ermöglicht Java-Code auf jedem System laufen wie sie ist , zunehmende Mobilität. Da die JVM existiert als ein Umfeld, in dem um den Code auszuführen , enthält es einen eigenen Speicher -Konfiguration, einschließlich flachen Speicher und Heap-Speicher . Der Heap-Speicher macht einen erheblichen Teil der JVM-Speicher , mit kritischen Anwendung Laufzeit- Daten . Objekte und Speicher
Java stellt eine rein objektorientierte Programmiersprache , was bedeutet, dass Java die Vorteile der objektorientierten Programmierung , einschließlich Vererbung und Polymorphismus enthält . Um diese Vorteile zu gehören , muss die JVM haben einen Raum, um instanziiert Objekte zu speichern . Diese Objekte müssen nicht in der unmittelbaren Erinnerung an eine eine ausführende Thread von Java-Code vorhanden sind. Vielmehr erklärt Java-Code "Referenzen" auf Objekte, die einen Standort in tiefen , Langzeitgedächtnis zu speichern.
Der Heap und der Stack
Der Heap und der stapeln stellen die Differenz zwischen lang-und kurzfristigen Speicher in einem ausgeführten Programm , unabhängig davon, objektorientierte Sprache . Der Stapel bezieht sich auf die unmittelbaren Variablen und Methodenaufrufe innerhalb eines ausgeführten Programms . Dazu gehören Skalarvariablen wie Ganzzahlen und Bytes , sowie Funktionen genannt . Der Haufen auf der anderen Seite stellt sich die Position , wo Objekte erstellt durch das Programm gespeichert werden. Die Objekte werden dynamisch in dem Heap zugewiesen und dort bleiben, bis nicht mehr durch das Programm benötigt.
JVM Speicher
Designers entwickelte die JVM- Speicher-System , um die Mimik objektorientiertes System andere Sprachen wie C + + . Jede ausführende Thread von Java-Code in der JVM hat seinen eigenen Stack , was seine lokale skalare Variablen und Funktionsaufrufe . Darüber hinaus hat die JVM eigenen Heap-Speicher . Wenn ein Programm eine Referenz auf ein Objekt schafft , zieht das Objekt aus dem kollektiven Gedächtnis Heap-Speicher .
Der Heap -Speicher in JVM
Der Heap-Speicher ist nur ein Teil der die gesamte JVM-Speicher , zusammen mit Stack-Speicher und andere Speicher Zuweisungen für wichtige Funktionen und JVM -Code. Allerdings stellt die Heap-Speicher ein entscheidender Teil der JVM , dass es sich das Fahrzeug , mit dem Objekte erstellt . Auch hat die JVM eine integrierte Speicherbereinigung Programm verwendete Objekte aus dem Heap zu löschen. Bei älteren objektorientierten Sprachen , Objekte manuell gelöscht werden musste , oder riskiert mit den Heap-Speicher in was als " Memory Leak ". JVM Garbage Collector überwacht jedoch den Heap und löscht alte Gegenstände .