int-Array - automatisch mit 0 vorbelegt?
Robert
- java
Hallöle,
wenn ich in Java (NICHT Javascript) ein Array von int erzeuge mit
int[][] meinArray = new int[10][20];
sind bei meinen Tests immer alle einzelnen int-Werte 0 gewesen.
Ist das jetzt nur zufällig bei der von mir verwendeten VM der Fall oder ist das etwas, worauf ich mich verlassen kann?
Oder muß ich zur Sicherheit doch das Array selbst mit Nullen füllen?
TIA,
cu,
Robert
Hi
Ist das jetzt nur zufällig bei der von mir verwendeten VM der Fall oder ist das etwas, worauf ich mich verlassen kann?
Oder muß ich zur Sicherheit doch das Array selbst mit Nullen füllen?
Der Wert wird ja initialisiert und eine Belegung mit null ist bei Primitiva nicht möglich. Also bleibt deiner (und jeder anderen) VM nichts anderes übrig als 0 reinzuschreiben.
Übrigens: boolean werden auf false gesetzt und double auf 0.0
Gruß
Wurf
Hallöle,
Ist das jetzt nur zufällig bei der von mir verwendeten VM der Fall oder ist das etwas, worauf ich mich verlassen kann?
Oder muß ich zur Sicherheit doch das Array selbst mit Nullen füllen?
Der Wert wird ja initialisiert
Genau da war ich mir nicht so sicher. Bei C bzw. C++ ist das ja nicht der Fall.
und eine Belegung mit null ist bei Primitiva nicht möglich. Also bleibt deiner (und jeder anderen) VM nichts anderes übrig als 0 reinzuschreiben.
Übrigens: boolean werden auf false gesetzt und double auf 0.0
Ok, danke für die Info - kann ich mir also die explizite Initialisierung sparen.
cu,
Robert
Hi,
nun ja, also ich muss aus meiner persönlichen Meinung sagen, dass ich das für keine gute Idee halte. Es braucht nur mal jemand auf die Idee zu kommen in einer zukünftigen Version das Array mit MAX_VALUE zu initialisieren und schon stehst du da. Wenn deine Anwendung darauf aufbaut einen bestimmten Wert vorzufinden, dann solltest du auch dafür sorgen, dass er dort ist.
Bei der Deklaration von Variablen und Initialisierung innerhalb von if-Blöcken o.ä. gibt Java nicht umsonst auch von sich aus eine Warnung aus "might not have been initialized".
Was kostet es dich, da einen kleinen Einzeiler zur Initialisierung zu platzieren...
MfG
Rouven