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

首先给出结论:
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("");
    }
}

这里写图片描述
这个错误是内存溢出错误,所以系统无法分配这么大的内存空间。
现在的问题是,计算机系统可以分配多大的内存呢?
这其实和很多硬件相关的因素有关,下面通过程序来测试最大的内存空间。

这里写代码片
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值