Java中String接受的最大字符串的长度是多少

 我来答
六六看社会
高粉答主

2018-04-05 · 财务助理
六六看社会
采纳数:2198 获赞数:126536

向TA提问 私信TA
展开全部

数组最大的长度为Integer.MAX_VALUE

1.不过,我们在编写源代码的时候,如果使用 Sting str = "aaaa";的形式定义一个字符串,那么双引号里面的ASCII字符最多只能有 65534 个。

2.因为在class文件的规范中, CONSTANT_Utf8_info表中使用一个16位的无符号整数来记录字符串的长度的,最多能表示 65536个字节,而java class 文件是使用一种变体UTF-8格式来存放字符的,null值使用两个字节来表示,因此只剩下 65536- 2 = 65534个字节。

3.也正是变体UTF-8的原因,如果字符串中含有中文等非ASCII字符,那么双引号中字符的数量会更少(一个中文字符占用三个字节)。如果超出这个数量,在编译的时候编译器会报错。

朵朵哆来咪0
2017-09-03 · 啦啦啦!啦啦啦!啦啦啦
朵朵哆来咪0
采纳数:483 获赞数:2450

向TA提问 私信TA
展开全部
String类型的长度为320339960,其最大容量不超过1个G。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牲口圣者
2016-06-30 · TA获得超过525个赞
知道小有建树答主
回答量:466
采纳率:50%
帮助的人:340万
展开全部
我们可以使用串接操作符得到一个长度更长的字符串,那么,String对象最多能容纳多少字符呢?查看String的源代码我们可以得知类String中
是使用域 count 来记录对象字符的数量,而count 的类型为 int,因此,我们可以推测最长的长度为 2^32,也就是4G。

  不过,我们在编写源代码的时候,如果使用 Sting str = "aaaa";的形式定义一个字符串,那么双引号里面的ASCII字符最多只能
有 65534 个。为什么呢?因为在class文件的规范中, CONSTANT_Utf8_info表中使用一个16位的无符号整数来记录字符串的长
度的,最多能表示 65536个字节,而java class 文件是使用一种变体UTF-8格式来存放字符的,null值使用两个字节来表示,因此只剩
下 65536- 2 = 65534个字节。也正是变体UTF-8的原因,如果字符串中含有中文等非ASCII字符,那么双引号中字符的数量会更少(一
个中文字符占用三个字节)。如果超出这个数量,在编译的时候编译器会报错
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
易建议
2016-06-30 · 喜欢分享的人都容易获得幸福感~
易建议
采纳数:344 获赞数:1342

向TA提问 私信TA
展开全部
最多65536长度。因为String里面实际上是一个char[],数组最大的长度为Integer.MAX_VALUE,
也就是65536
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式