Ich möchte herausfinden, ob die length -Eigenschaft für Java-Arrays ein int/long oder etwas anderes ist.Was ist der Datentyp für die length -Eigenschaft für Java-Arrays?
Antwort
Es ist ein Int. Siehe die Java Language Specification, Abschnitt 10.7.
Der Datentyp ist int, nicht lang. Genau wie der Index.
Siehe http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html, 10.4
Nach dem specification, es ist ein int
In Java Language spec, Arrays Sie in 10.4 sehen können:
Arrays indiziert werden müssen von int-Werten; Kurz-, Byte- oder Zeichenwerte können auch als Indexwerte verwendet werden, da sie einer unären numerischen -Heraufstufung unterliegen und int-Werte werden. Ein Versuch, auf ein Array zuzugreifen Komponente mit einem langen Indexwert führt zu einem Fehler bei der Kompilierung.
Ich konnte den Typ des Längenattributs nicht finden, aber es ist mindestens ein int; und wenn es lang ist, können Sie nicht auf Elemente jenseits der maximalen Integer-Länge zugreifen.
Also ich denke, es ist ein (endgültiger) Int.
In JavaCard-Array-Indizes sind Kurzschlüsse, aber JavaCard ist so seltsam. Überall sonst, so wie alle anderen auch.
Ich kann wirklich nichts sehen, das den Gebrauch von einem langen verbietet, zum Beispiel auf einer Plattform, wo das leistungsfähiger ist. Sie können es einfach nicht mit etwas Größerem als einem int indizieren. Es ist eine theoretische Diskussion an dieser Stelle. (Ja, ich habe das Beispiel gesehen, aber das ist nicht normativ). – extraneon