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