Wie viele Elemente (String) passen in ein Java Array? Integerbereich? Gruß Tim
Kommt drauf an. Bei alten Java- Versionen war die max. Array-Größe glaube ich Integer.MAXINT -4, bei neuen ist es Integer.MAXINT. Ob du allerdings in deinem Speicher soviele unterschiedliche Strings anlegen kannst, ist die Frage.
Zur Beantwortung der Frage sind nicht genug Informationen vorhanden. Welche Dimension hat das Array denn?
Zur Beantwortung der Frage sind genug Informationen vorhanden. Mehrdimensionale Arrays sind in Java als Arrays von Arrays aufgebaut, somit existieren auf Verwaltungsebene nur eindimensionale Arrays.
Wen interessiert diese ominöse Verwaltungsebene? Zur Beantwortung der Ursprungsfrage liegen in der Tat nicht genügend Informationen vor.
Die Strings werden bekanntlich in einem Pool gespeichert*, und somit belegen gleiche Strings nur den Speicher eines Literals. Du kannst also durchaus das komplette Array mit Strings füllen, ohne eine OutOfMemoryException zu bekommen. *Es sei denn, man erzeugt explizit einen neuen String
Stock Hecht wrote: > Kommt drauf an. Bei alten Java- Versionen war die max. Array-Größe > glaube ich Integer.MAXINT -4, bei neuen ist es Integer.MAXINT. Ob du > allerdings in deinem Speicher soviele unterschiedliche Strings anlegen > kannst, ist die Frage. Eigentlich wirds schon knapp, wenn man das leere Array anlegt, bei meiner letzten Messung mit dem Original-Sun-JRE1.3 unter Windows lag der Speicherbedarf bei 4 Byte pro Eintrag, und das fürs leere Array. Also falls deine Java VM nicht grad 8GB beanspruchen kann stößt du da schon an die Grenze...
OK, ich habe das mal mit Java6 und Groovy getestet: def arr = new String[java.lang.Integer.MAX_VALUE-5] bringt einen OutOfMemomryError. Mit java -Xmx ... setzt man den Heap auf das Maximum, kannst mal ausprobieren, ob es dann funktioniert. Allerdings ist das (der Heapspace) dann ein Limit deiner Plattform, und nicht von der JVM!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.