2016-05-04 11 views
-4

Ich fange gerade mit dem Programmieren an und ich weiß nicht viel über Computer, wie Gedächtnis, cpus das interne Zeug.Wie verwendet Java-Objekte Speicher?

Ok die Grundlagen, die ich kenne!

in der Java-Dokumentation:

  • Byte = 8 Bits
  • kurz = 16 Bits
  • int = 32 Bits
  • long = 64 bits
  • float = 32 Bits
  • double = 64 Bits
  • char = 16 Bits

Meine Klasse:

public classFoo{ 
    int a; 
    int b; 
    long c; 
    long d; 
} 

Dieser Code weist 256 Bits im Speicher oder es braucht mehr?

Methoden verbrauchen Speicher?

Wenn ich 10 Foo-Objekte habe, verbrauchen sie 2560 Bytes im Speicher?

Und was ist mit Strings und booleans, wie der Speicher dafür verwaltet wird?

Welche anderen Dinge haben Auswirkungen auf den Speicher eines Objekts?

+0

So viele, dass Sie sich keine Sorgen machen sollten, wenn Sie gerade anfangen zu programmieren. – Kayaman

Antwort

0

Es geht nicht darum, wie viele Objekte, sondern tatsächlich die Größe von Objekten erstellt wird. Sie ordnen dem Java-Programm etwas Speicherplatz zu oder JVM, es verwendet diesen Speicher und weist Objekte zu.

Wenige Objekte benötigen möglicherweise wenig Speicher, während nur wenige mehr aufnehmen können.

Es hängt von Server-Maschine zu Maschine, wie viel Platz auf JVM usw. zugeordnet ist

Auch ist es nicht, hängt von GC, wann immer der Speicherverbrauch hoch ist, JVM läuft GC und der Speicher frei nach oben.

Ein voller Speicher erschöpft ist, JVM wirft und wirft OutOfMemoryError

Ein einfaches Java-Programm kann

OOM Fehler werfen
public static void main(String[] args) { 
    long[] l = new long[Integer.MAX_VALUE]; 
} 

Ausgabe

Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit 

Das Konzept ist groß, aber Du bist total in die falsche Richtung.

0

Es hängt von der Größe der Objekte ab, die Sie erstellen. Je nach dem vom Benutzer oder Programmierer zugewiesenen Speicher verwendet JVM diesen Speicher zum Zuweisen von Objekten. Java

Verwandte Themen