社区
Web 开发
帖子详情
关于java String 的长度问题
super_man1991
2011-01-12 08:19:08
String 的最大取值范围是多少?? 是2G吗?? 2的31次方减1?? 求正解。。
...全文
257
3
打赏
收藏
关于java String 的长度问题
String 的最大取值范围是多少?? 是2G吗?? 2的31次方减1?? 求正解。。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luman2002
2011-01-12
打赏
举报
回复
[Quote=引用 1 楼 leew1229 的回复:]
查看String的源代码我们可以得知类String中是使用域 count 来记录对象字符的数量,而count 的类型为 int,因此,我们可以推测最长的长度为 2^32,也就是4G。
不过,我们在编写源代码的时候,如果使用 Sting str = "aaaa";的形式定义一个字符串,那么双引号里面的ASCII字符最多只能有 65534 个。为什么呢?因为在class文件的规范中, CON……
[/Quote]
+1
xue08161981
2011-01-12
打赏
举报
回复
支持楼上的
leew1229
2011-01-12
打赏
举报
回复
查看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字符,那么双引号中字符的数量会更少(一个中文字符占用三个字节)。如果超出这个数量,在编译的时候编译器会报错。
这是摘自《关于JAVA String长度的限制》中的一段,希望对你有帮助
Java
String
对中文
长度
的计算
问题
本文介绍了在
Java
中处理中文字符串时遇到的一个常见
问题
:使用
String
的length()方法得到的
长度
与按照字节流计算得到的
长度
不一致。文章详细解释了这一现象的原因,并提供了解决方案。
java
中文的
长度
_
Java
String
对中文
长度
的计算
问题
| 学步园
本文探讨了
Java
中处理中文字符串
长度
的
问题
。通过对比
Java
与银行系统对于字符串
长度
的不同计算方式,揭示了
Java
String
.length()方法在处理中文字符时的局限性,并提供了解决方案。
Java
中的
String
的
长度
限制
问题
本文详细解析了
Java
中
String
长度
的限制,包括编译期和运行期的不同限制条件,并通过源码分析和实验验证来深入探讨。
java
中输出
string
长度
问题
本文介绍了在一个使用nvarchar(200)字段存储短消息的系统中,如何正确判断包含多种字符类型的消息
长度
,并确保其符合数据库
长度
限制。通过采用
string
.getBytes().length方法,解决了不同字符类型(如汉字、字母、数字)在
长度
计算上的差异
问题
。
关于
Java
的
String
字符串常量的
长度
问题
本文探讨了
Java
中字符串常量的最大
长度
限制
问题
,并通过示例代码解释了为什么字符串常量
长度
不能超过65534个字符。此外,还讨论了字符串变量与字符串常量在
长度
上的不同之处。
Web 开发
81,108
社区成员
341,721
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章