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.
Gast
#557855
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.
Gast
#558240
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!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.