社区
Web 开发
帖子详情
关于java String 的长度问题
super_man1991
2011-01-12 08:19:08
String 的最大取值范围是多少?? 是2G吗?? 2的31次方减1?? 求正解。。
...全文
176
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
主要讲解
String
类型的不可变性,里面的方法,==等
[
Java
]
String
长度
限制
一、
Java
String
变量
长度
限制 根据
String
源码: 因此,理论上
String
变量
长度
限制为 int 类型的最大值,即 Integer.MAX_VALUE = 2^31 - 1 = 2147483647,约等于 2G。 注:实际还和
java
堆内存大小有关。 二、
Java
String
常量
长度
限制 而在
Java
中,由于字符串常量池的存在,
String
常量
长度
限制取决于
String
常量在常量池中的存储大小。 字符串在 class 文件中的存储格式为: CONSTANT_Ut
java
中文的
长度
_
Java
String
对中文
长度
的计算
问题
| 学步园
Java
String
对中文
长度
的计算
问题
2010-07-30 13:36:38| 分类:
java
|字号 订阅
Java
String
对中文
长度
的计算
问题
今天在农行测试系统,碰到个很恶心的
问题
。我通过socket发到银行服务器的报文,总是后面少了几位,银行截取字符串是按照我在报文头传过去的报文总
长度
计算的。然后怀疑我发过去的报文
长度
计算不对。但是这个是一个很简单的
string
.length()...
java
String
的
长度
String
首先要知道
String
的
长度
限制我们就需要知道
String
是怎么存储字符串的,
String
其实是使用的一个char类型的数组来存储字符串中的字符的。 存储
String
的容器原来是它 那么
String
既然是数组存储那数组会有
长度
的限制吗?是的有限制,但是是在有先提条件下的,我们看看
String
中返回length的方法。
String
类中的length方法 由此我们看到返回值类型是int类型,
Java
中定义数组是可以给数组指定
长度
的,当然不指定的话默认会根据数组元素来指定:
java
string
最大
长度
是多少_字符串
String
的最大
长度
开篇三个
问题
作为
Java
的程序员,不知道在
Java
代码中定义了多少个字符串,可是看看下面3个
问题
。你是否认真思考过?是否动手实践过?1.
Java
中的字符串
String
的最大
长度
是多少?2.Eclipse使用哪种
Java
编译器?3.为何Eclipse要出自己的编译器?对于字符串可以承受的最大
长度
,要分为2个阶段,一个是编译时期(也就是你代码定义了一个
String
字符串,
String
s= "xiao...
Web 开发
81,095
社区成员
341,711
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章