String长度限制

编译期限制

String x = "abcd"; // 字面量

如果我们将 字符串 定义为字面量形式,编译时JVM会将其放入常量池中,这时候JVM对常量池存储String类型做出了限制。
在这里插入图片描述
常量池中,每个 cp_info 项的格式必须相同,它们都以一个表示 cp_info 类型的单字节 “tag”项开头。后面 info[]项的内容 由tag 的类型所决定。
在这里插入图片描述
String类型的表示是 CONSTANT_String ,我们来看下CONSTANT_String具体是如何定义的。
在这里插入图片描述
在这里插入图片描述
length=2^16-1 等于65535,由于符号位要占一位,所以等于65534

运行时限制

String 运行时的限制主要体现在 String 的构造函数上。下面是 String 的一个构造函数

public String(char value[], int offset, int count) {
	......
}

上面的count值就是字符串的最大长度。在Java中,int的最大长度是2^31-1。所以在运行时,String 的最大长度是2^31-1。

转载:https://blog.csdn.net/zhipengfang/article/details/115713951

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值