社区
Java SE
帖子详情
String对象有长度限制吗?
phoenixcheng
2003-03-28 06:14:10
请教一下,String里面能够容纳的字符个数有长度限制吗?
...全文
80
4
打赏
收藏
String对象有长度限制吗?
请教一下,String里面能够容纳的字符个数有长度限制吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
phoenixcheng
2003-03-29
打赏
举报
回复
哦,2的31次方减1,应该够大了,呵呵
多谢!
shine333
2003-03-28
打赏
举报
回复
我认为取决于两点,1是你的机器配置
2是由于String用char[]存放内容,而数组的下标用int表示,而int有上限即Integer.MAX_VALUE
phoenixcheng
2003-03-28
打赏
举报
回复
变长定长是指什么啊,string不是都不可更改的吗?
你说的变长是不是指StringBuffer啊?
zsgzsgzsg
2003-03-28
打赏
举报
回复
String (变长):0 到大约 20 亿个字符
String(定长):1 到大约 65,400个字符
String
有
长度
限制
吗?是多少?
运行期,
String
的 length 参数 int 类型的,那么也就是说,
String
定义的时候,最大支持的
长度
就是 int 的最大范围值。可以看到,这里面的参数 length 是使用 int 类型定义的,那么也就是说,
String
定义的时候,最大支持的
长度
就是 int 的最大范围值。这个值约等于 4G,在运行期,如果
String
的
长度
超过这个范围,就可能会抛出异常。编译期需要用 CONSTANT_Utf8_info 结构用于表示字符串常量的值,而这个结构是有
长度
限制
,他的
限制
是 65535。
面试题:
String
类型
长度
有
限制
吗?最大多少?
问题:字符串有
长度
限制
吗?最大多大呢?答:首先字符串的内容是由一个字符数组 char[] 来存储的,由于数组的
长度
及索引是整数,且
String
类中返回字符串
长度
的方法length() 的返回值也是int ,所以通过查看java源码中的类Integer我们可以看到Integer的最大范围是2^31 -1,由于数组是从0开始的,所以数组的最大
长度
可以使【0~2^31-1】通过计算是大概4GB。
面试官:
String
长度
有
限制
吗?是多少?还好我看过!!
是的有,而且在JVM编译中还有规范,而且有的家人们在面试的时候也遇到了,本人就遇到过面试的时候问这个的,而且在之前开发的中也真实地遇到过这个
String
长度
限制
的场景(将某固定文件转码成Base64的形式用字符串存储,在运行时需要的时候在转回来,当时文件比较大),那这个规范
限制
到底是怎么样的,咱们话不多说先䁖䁖去。这里定义的 u2
string
_index 表示的是常量池的有效索引,其类型是CONSTANT_Utf8_info 结构体表示的,这里我们需要注意的是其中定义的length我们看下面这张图。
Java 中的
String
有没有
长度
限制
?
作者 l Hollis来源 l Hollis(ID:hollischuang)关于
String
有没有
长度
限制
的问题,我之前单独写过一篇文章分析过,最近我又抽空回顾了一下这个问题,发现又有...
面试官:
String
长度
有
限制
吗?是多少?
答:首先字符串的内容是由一个字符数组 char[] 来存储的,由于数组的
长度
及索引是整数,且
String
类中返回字符串
长度
的方法length() 的返回值也是int ,所以通过查看java源码中的类Integer我们可以看到Integer的最大范围是2^31 -1,由于数组是从0开始的,所以数组的最大
长度
可以使【0~2^31】通过计算是大概4GB。首先要知道
String
的
长度
限制
我们就需要知道
String
是怎么存储字符串的,
String
其实是使用的一个char类型的数组来存储字符串中的字符的。
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章