2017-02-24 2 views
-4

Ich habe POJO-Klasse mit 300 Variablen drin. Ich möchte eine Liste dieser POJO-Klassen führen. Von diesen 300 Feldern wird 150 immer NULL sein, weil es nicht verwendet wird. Würden Sie mich bitte wissen lassen, wird JVM Speicher zu Nullfeldern zuweisen? Wird es für den Heapspeicher problematisch sein?Wie Speicher Objekt in Java zugewiesen wird

+1

Diese Frage klingt ein bisschen unsinnig –

+1

Gesamtraum pro Objekt ist wie bei der ersten Antwort erforderlich (insgesamt * 4 Bytes für 32 Bit oder insgesamt * 8 Bytes für 64-Bit-Systeme). aber 300 ist eine Vielzahl von Variablen aus Sicht der Wartbarkeit. Ich würde empfehlen, sie in separate Objekte zu gruppieren, z. Alle Adressfelder würden in ein Address-Objekt gehen, dessen ID über ein Adresselement referenziert ist: private Address-Adresse; Dies kann Null sein, wenn keine Adresse definiert ist. – slipperyseal

Antwort

1

In Java, auch wenn ein Feld Null ist, belegt es immer noch 4 Byte auf 32-Bit-Systemen oder 8 Byte auf 64-Bit-Systemen, um die Null-Referenz beizubehalten. In diesem Fall verwendet das Objekt 150 * 4 (150 * 8 für 64-Bit) zusätzliche Bytes, um die nicht verwendeten Felder zu behalten. Das ist jedoch keine große Sache, bis Sie nicht zu viele Instanzen gleichzeitig zuweisen.

Verwandte Themen