您的位置:首页 > 编程语言 > Java开发

JAVA中的String类--String的最大长度

2016-01-11 21:16 106 查看
首先给出结论:

String在内存中的最大长度理论上是int型变量的最大值,
Integer.MAX_VALUE
,

String的字面常量的最大长度为CONSTANT_Utf8_info表决定,一般为65535.

1、String的内部实现

通过一个字符数组来维护字符序列,其声名如下:

private final char value[];


所以,String的最大长度取决于字符数组的最大长度,因为字符数组长度只能是byte,char,short,int而不能是long型,所以这也说明最大长度,另一方面,我们知道String类有一个方法,
str.length()
它的返回值是int型变量,声明如下:

public int length()


所以这也说明了最大长度的理论值,但在实际中,要比理论值小,

public class mainClass {

public static void main(String[] args) {
// TODO Auto-generated method stub
char[] value=new char[Integer.MAX_VALUE];
System.out.println("");
}
}




这个错误是内存溢出错误,所以系统无法分配这么大的内存空间。

现在的问题是,计算机系统可以分配多大的内存呢?

这其实和很多硬件相关的因素有关,下面通过程序来测试最大的内存空间。

这里写代码片
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: