考虑到
String该类的
length方法返回
an int,则该方法将返回的最大长度为
Integer.MAX_VALUE,即
2^31 - 1(或大约20亿)。
在数组的长度和索引方面(例如
char[],这可能是内部数据表示的实现方式String),Java SE 7版的《 Java语言规范》的第10章:数组表示以下内容:
数组中包含的变量没有名称。而是由使用非负整数索引值的数组访问表达式引用它们。这些变量称为数组的 组件。如果一个数组有n分量,那么我们说的
n是数组的 长度。数组的组成部分使用从
0到的整数索引
n - 1(含)进行引用。
此外,
int如第10.4节所述,索引必须按值进行:
数组必须按
int值建立索引;
因此,似乎限制确实是
2^31 - 1,因为这是非负值的
int最大值。
但是,可能还会有其他限制,例如数组的最大可分配大小。



