导航:首页 > 编程语言 > java中string为什么长度多一个

java中string为什么长度多一个

发布时间:2022-09-17 18:06:28

『壹』 java里,string的长度是固定的

String s;这个只是声明了一个变量,除了变量本身,是没有长度的;
String s = "sss";这个与"sss"的值的长度有关,此时s.length将为3;
但即使给s执行s + "1"操作,Java虚拟机也将创建一个新的字符串"sss1",这个与刚才的"sss"指向了不同的地址空间,此时s.length为4;
这是因为String的实现是final类型的char[],一旦对其赋值,其所对应的地址空间将不会改变;如果再次赋值或者执行"s"都将开辟新空间创建新对象,所以说每一个Java栈上的String对象的长度是固定的。

『贰』 下面这段java代码为什么输出的字符串长度加了1。

因为空格也是一个字符。"hello"的长度是5," world"的长度是1+5=6,所以加起来是11。

『叁』 Java中String类型有没有长度的限制

严格来来说,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个字符都有可能。

『肆』 Java中String类型有没有长度的限制

严格来说,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个字符都有可能。

『伍』 Java中String接受的最大字符串的长度是多少

数组最大的长度为Integer.MAX_VALUE
1.不过,我们在编写源代码的时候,如果使用
Sting
str
=
"aaaa";的形式定义一个字符串,那么双引号里面的ASCII字符最多只能有
65534
个。
2.因为在class文件的规范中,
CONSTANT_Utf8_info表中使用一个16位的无符号整数来记录字符串的长度的,最多能表示
65536个字节,而java
class
文件是使用一种变体UTF-8格式来存放字符的,null值使用两个字节来表示,因此只剩下
65536-
2

65534个字节。
3.也正是变体UTF-8的原因,如果字符串中含有中文等非ASCII字符,那么双引号中字符的数量会更少(一个中文字符占用三个字节)。如果超出这个数量,在编译的时候编译器会报错。

『陆』 java数据长度问题:一段带有回车的数据长度。实际长度比人家提供的长度多一个。 是因为我用的是WINDOW系统

回车(回车换行)在windows上是 \r\n ,linux换行是\n是如果你用linux创建同样的文件,回车就只占1个长度了。

你可以这样
String s="abc\r\ndef";
String s1="abc\ndef";
它们都代表换行,输出也一样,但长度不一样。

『柒』 java string有长度限制吗

代码的实现没有明确标识过最大长度,但是String的内部实现是由char[]实现的。而char的长度由int定义,所以int的最大长度决定了String 的长度。

『捌』 Java中String接受的最大字符串的长度是多少

我们可以使用串接操作符得到一个长度更长的字符串,那么,string对象最多能容纳多少字符呢?查看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接受的最大字符串的长度是多少

数组最大的长度为Integer.MAX_VALUE

『拾』 java中string多少个字节

从String的源代码我们可以得知类String中是使用域 count 来
记录对象字符的数量,而count 的类型为 int,因此,我们可以推测最长的长度
为 2^32,也就是4G。如果是ASCII 码的话最多只能有 65534 字节,utf8编码的话最多是65536 个字节。

阅读全文

与java中string为什么长度多一个相关的资料

热点内容
win10文件比率是什么 浏览:652
msdb数据库置疑 浏览:210
移动花卡免流app为什么要10元 浏览:147
xamppphp配置文件 浏览:268
删除ghost文件 浏览:642
苹果7可置换地方 浏览:763
win10腾讯文件夹在哪里 浏览:262
在网站前面加什么可以看会员视频 浏览:908
哪个读书app支持格式最全 浏览:322
魅族mx3提示网络可能会受到监控 浏览:308
如何判断复制文件是否完整 浏览:803
qq接收的语音文件在 浏览:408
手机qq禁止查看动态 浏览:923
如何用编程求解二重积分 浏览:366
在桌面上搜索不到文件夹 浏览:723
中外文专利网站有哪些 浏览:682
尖刀车端面槽怎么编程 浏览:70
电脑重装会把所有文件都删掉吗 浏览:982
java匿名内部类构造函数 浏览:573
如何ftp文件到linux 浏览:894

友情链接