Java-Programme Computer-Speicher verwenden in unterschiedlicher Weise. Wenn Java-Programmierer zumindest ein grundlegendes Verständnis davon, wie Speicher innerhalb der Sprache geschafft haben , haben sie eine viel bessere Chance auf die Schaffung effizienter , leistungsstarke Anwendungen . Wie bei den meisten Aspekten der Programmierung, ist es nicht notwendig, alle Details der Implementierung der Java -Speicher -Management-Modell zu verstehen, aber das Greifen der zwei grundlegende Arten von Gedächtnis und ihre Auswirkungen auf die Programmierung ist nützlich . Typen und Speicher
Java-Variablen -Modell -Daten und Code-Komponenten auf verschiedene Weise. Je nach Art und Umfang einer Variablen , kann sie entweder in Heap oder Stack-Speicher gespeichert werden. Stapel -Speicher können als kurzfristige , Haufen als langfristig gedacht werden . Wenn Sie ein Entwicklungsprojekt in Java zu nähern, müssen Sie ständig Entscheidungen darüber, wie Sie Modell Datenelemente , die bestimmen, in welche Arten von Speicher sie gespeichert sind, zu machen. Diese Entscheidungen mit einem Verständnis der Auswirkungen ermöglicht es Entwicklern, Programm Effizienz zu maximieren.
Primitives
Primitive Typen in Java gehören grundlegende Zahl und Charakter-Typen wie "int" für primitive Integer-Werte und "char" für primitive Zeichen . Wenn Java primitive Typen speichert , die gespeicherten Informationen im Wesentlichen besteht aus der variablen Werte , so dass die Menge der Speicherbelegung der Regel kleiner als bei Objekttypen. Wenn ein primitiver Typ Variable existiert nur als lokale Variable innerhalb einer Anwendung class -Datei, wird es in Java Stack speichern.
Objekte
Objekttypen in Java gehören sowohl die Typen innerhalb der Sprache selbst und Typen definiert von Programmierern mit Klassendeklarationen vorgesehen . Wenn ein Java-Programm ein Objekt erstellt , weist der JVM (Java Virtual Machine) einen Abschnitt des Heap-Speichers für sie. Innerhalb des Programms wirkt die Variable Name für ein Objekt zugewiesen als Referenz zu dieser Stelle im Speicher . Der Raum für ein Objekt innerhalb Heap-Speicher können die Daten innerhalb des Objekts , einschließlich Variablen beliebigen Typs enthalten hat , ob primitiv oder Objekt .
Variable Scope
Variable Umfang eine direkte Auswirkung auf Speicher-Management in einem Java-Programm . Um eine effiziente Anwendungen zu erstellen , suchen Entwickler den erforderlichen Umfang für eine bestimmte Variable oder Datenelement minimieren. Zum Beispiel zeigt das folgende eine bedingte Anweisung mit einer lokalen Variablen drin :
int someNumber = 3;
if ( someNumber > 0) { int
doubleNumber = someNumber * 2;
System.out.println ( doubleNumber ); }
triviales Beispiel führt eine Berechnung auf eine Variable , Schreiben des Ergebnisses aus . Die Variable speichert das Rechenergebnis in der bedingten erklärt wird , so ist nicht zugänglich einem beliebigen Zeitpunkt nach dem bedingten Block . Im Allgemeinen gibt Variablen die minimale Menge an Möglichkeiten für sie zu funktionieren benötigt richtig hilft Programme verwenden so wenig Speicher wie möglich .
Garbage Collection
Die JVM Garbage Collector verwaltet die Menge an Speicher, die für ein Programm ist . Wenn ein Objekt oder eine andere Art nicht mehr in einer Anwendung verwendet wird ( zum Beispiel, wenn es seine Funktion ausgeführt hat und nicht mehr erforderlich ist ) , sollte der von ihm verwendete Speicher idealerweise wieder eingesetzt werden , wenn nötig. Der Garbage Collector ist in der Lage, Heap-Speicher umzuschichten , wenn eine Anwendung über wenig Speicher-Ressourcen . Wenn ein Objekt Variable ist außerhalb des Bereichs , kann seinen Speicher ein Kandidat für die Garbage Collection sein .