社区
Java SE
帖子详情
String类所存储的字符串,有没有长度限制?
vvpang
2006-03-15 04:53:06
我知道 String 在java里,是一个强不变类。
应该是遵循类的规则的。
String类实际上是一个包装了char的数组。。
按照类的解释,应该是只要不 OutOfMemory 就可以无限制的存储。。
是这样的吗?
如果存的内容很大,大约2M左右,会有问题吗?
...全文
650
10
打赏
收藏
String类所存储的字符串,有没有长度限制?
我知道 String 在java里,是一个强不变类。 应该是遵循类的规则的。 String类实际上是一个包装了char的数组。。 按照类的解释,应该是只要不 OutOfMemory 就可以无限制的存储。。 是这样的吗? 如果存的内容很大,大约2M左右,会有问题吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
eidolon_warrior
2006-03-16
打赏
举报
回复
但是数据库中的String是有限制的 如Oracle的String字段是4000字符
maquan
2006-03-16
打赏
举报
回复
很欣赏楼主的钻研精神 ^_^
建议按下面的方法找到答案:
1. 阅读 Sun JDK 的源代码,看看 java.lang.String 的实现;
2. 阅读 Java Language Specification,看看有没有关于 char[] 的容量限制;
3. 写一段程序,看看 String 长度的极限是多少。
(估计最先触犯的不是 Java 语言的限制,而是机器内存的限制)
至于 2M 的 String 行不行,相信不难得出结论。不过,说句题外话,我总觉得,要用到 2M 的 String,恐怕是设计上有问题,应该有更优化的办法。
ahlon
2006-03-15
打赏
举报
回复
编一个程序试试,看String到多少,内存耗尽
做鸡真好吃
2006-03-15
打赏
举报
回复
why?
woolceo
2006-03-15
打赏
举报
回复
似乎是没问题。。。
如果持久化就要考虑数据库的情况。
Flowing_air
2006-03-15
打赏
举报
回复
关注一下,我也不清楚。似乎是跟内存大小有关的:)
vvpang
2006-03-15
打赏
举报
回复
可存2^32-1个字符 ???
为什么???
zx2002027
2006-03-15
打赏
举报
回复
可存2^32-1个字符
lemon_wei
2006-03-15
打赏
举报
回复
是2亿多个字符吧。反正是足够用的了。
interpb
2006-03-15
打赏
举报
回复
没有问题!!
String
字符串
的最大
长度
是多少?
转自:
String
字符串
的最大
长度
是多少?在学习和开发过程中,我们经常会讨论 short ,int 和 long 这些基本数据
类
型的取值范围,但是对于
String
类
型我们好像很少注意它的“取值范围”。那么对于
String
类
型,它到底
有没有
长度
限制
呢? 其实
String
类
型的对象,他们是有
长度
限制
的,
String
对象并不能“
存储
”无限
长度
的
字符串
。关于
String
的
长度
限制
要从编译时
限制
和运行时
限制
两方面考虑。 编译期
限制
有JVM虚拟机相关知识的同学肯定知道,下面定义的
字符串
常量“
String
长度
是否有
限制
?如果有,
限制
是多少?
String
长度
是否有
限制
?如果有,
限制
是多少?
String
字符串
长度
有
限制
吗?是多少?
话说Java中
String
是有
长度
限制
的,听到这里很多人不禁要问,
String
还有
长度
限制
?是的有,而且在JVM编译中还有规范,而且有的人在面试的时候也遇到了。 首先要知道
String
的
长度
限制
我们就需要知道
String
是怎么
存储
字符串
的,
String
其实是使用的一个char
类
型的数组来
存储
字符串
中的字符的。 那么
String
既然是数组
存储
那数组会有
长度
的
限制
吗?是的有
限制
,但是是在有先提条件下的,我们看看
String
中返回length的方法。 由此我们看到返回值
类
型是int
类
型,Java中定义数组是.
字符串
有
长度
限制
吗?是多少?
首先
字符串
的内容是由一个字符数组 char[] 来
存储
的,由于数组的
长度
及索引是整数,且
String
类
中返回
字符串
长度
的方法length() 的返回值也是int ,所以通过查看java源码中的
类
Integer我们可以看到Integer的最大范围是2^31 -1,由于数组是从0开始的,所以数组的最大
长度
可以使【0~2^31】通过计算是大概4GB。 但是通过翻阅java虚拟机手册对class文件格式的定义以及常量池中对
String
类
型的结构体定义我们可以知道对于索引定义了u2,就是无符号占2个字节,2个字节可
Java中
字符串
有
长度
限制
吗?有的话是多少?
问:Java中
字符串
有
长度
限制
吗?有的话是多少? 答:首先
字符串
的内容是由一个字符数组 char[] 来
存储
的,由于数组的
长度
及索引是整数,且
String
类
中返回
字符串
长度
的方法length() 的返回值也是int ,所以通过查看java源码中的
类
Integer我们可以看到Integer的最大范围是2^31 -1,由于数组是从0开始的,所以数组的最大
长度
可以使【0~2^31】通过计算是大概4GB。 但是通过翻阅java虚拟机手册对class文件格式的定义以及常量池中对
String
类
型的结构体定义我们可以知道
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章