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
-4
A
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
- 1. C++ neu/neu [], wie wird Speicher zugewiesen?
- 2. Wird Speicher für String häufig neu zugewiesen?
- 3. Wie werden @ "Strings" im Speicher zugewiesen?
- 4. Eigenschaft wird dem Java-Script-Objekt nicht zugewiesen?
- 5. Android - Speicher zugewiesen
- 6. Warum wird meinem char * in C nicht richtig Speicher zugewiesen?
- 7. Objekt nicht gelöscht, bevor neu zugewiesen wird
- 8. Speicher kann nicht zugewiesen werden
- 9. Wie ein Json-Objekt der Datentabelle zugewiesen wird?
- 10. Ubuntu - Elasticsearch - Fehler: Speicher kann nicht zugewiesen
- 11. Wie wird die Ausgabe von cat einem Objekt zugewiesen?
- 12. Wie s3 Objekt direkt in den Speicher in Java herunterladen
- 13. Wird zusätzlicher Speicher zugewiesen und gibt es ein Speicherleck?
- 14. Iterieren über Speicher mit Marshal.AllocHGlobal zugewiesen()
- 15. Wird die Objektreferenzvariable neu zugewiesen, wird das alte Objekt gelöscht?
- 16. Wie wird eine Variable zugewiesen?
- 17. in Java hashmap Implementierung Schlüssel wird zuerst Objekt zugewiesen und dann
- 18. Speicher von Java-Objekt zu PostgreSQL Problem
- 19. GNU malloc_info(): Wirklichen Speicher zugewiesen bekommen?
- 20. Was passiert, wenn die Synchronisationsvariable in Java neu zugewiesen wird?
- 21. Wie erstellt Java OutOfMemoryError-Objekt, wenn kein Speicher verfügbar ist
- 22. Thread-Sicherheit mit Heap-Speicher zugewiesen
- 23. Wird ein Objekt mit 'null' zugewiesen, entsteht ein Speicherleck?
- 24. Valgrind zeigt mehr Speicher zugewiesen, als tatsächlich
- 25. Wie Stack oder Speicher für Threads unter dem gleichen Prozess in Linux zugewiesen wird
- 26. Wie wird * array * Speicher in C und C++ zugewiesen und freigegeben?
- 27. Java-Speicher Fragen zu ‚neuen‘ Schlüsselwort
- 28. Wird in Golang ein Zeiger atomar zugewiesen?
- 29. Zeiger wird nicht zugewiesen
- 30. Force zurückgegebenes Objekt zugewiesen werden
Diese Frage klingt ein bisschen unsinnig –
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