永发信息网

Java中String类型有没有长度的限制?

答案:2  悬赏:30  手机版
解决时间 2021-11-14 21:16
  • 提问者网友:雾里闻花香
  • 2021-11-14 02:55
精选
最佳答案
  • 五星知识达人网友:罪歌
  • 2019-09-17 10:01
严格来说,String确实有长度限制。
1、String内部使用一个char[]数组来存放字符串的内容,数组下标是整型(也可以参考String的构造方法String(char value[], int offset, int count) ,可以知道字符数量是用整型表示),整型(Java规定32位)表示范围是2G,也就是说,Java数组最大的长度是2G,即字符串不能超过2G个字符。
2、Java的数组大小还有没有别的限制?事实上数组大小不能超过Java堆的大小,而Java堆的最大尺寸可以通过启动参数指定,如果Java堆开得足够大,数组的最大长度是可以不断增大的。
3、所以,理论上,字符串不能超过2G个字符,少于2G个字符都有可能。
全部回答
  • 1楼网友:逃夭
  • 2020-06-17 03:01
严格来说,string确实有长度限制。 string内部使用一个char[]数组来存放字符串的内容,数组下标是整型(也可以参考string的构造方法string(char value[], int offset, int count) ,可以知道字符数量是用整型表示),整型(java规定32位)表示范围是2g,也就是说,java数组最大的长度是2g,即字符串不能超过2g个字符。 java的数组大小还有没有别的限制?事实上数组大小不能超过java堆的大小,而java堆的最大尺寸可以通过启动参数指定,如果java堆开得足够大,数组的最大长度是可以不断增大的。 所以,理论上,字符串不能超过2g个字符,少于2g个字符都有可能。 但编码时有需要注意的地方,采用明文的方式,如果超过65534个字节,可能报编译错误,可参考下列网站(有一处错误,整型考虑到符号位,最大只到2g)。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯