导航:首页 > 编程语言 > 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为什么长度多一个相关的资料

热点内容
办理文件是什么 浏览:364
如何传文件给ipad 浏览:535
林正英电影下载一刻电影 浏览:183
反诈app电子邮箱怎么填写 浏览:438
波兰大尺度床戏电影 浏览:193
linux硬件性能测试工具 浏览:191
主角是个假盲人给人按摩的小说 浏览:128
想数据库中一个字段添加数组 浏览:466
电影法国啄木鸟 浏览:120
家教高级教程女演员 浏览:675
多多和妓院里的小女孩 浏览:688
word2003如何去掉首页页码 浏览:602
win10qq接受文件蓝屏 浏览:892
穿越到一个全是女人的世界 浏览:367
linux回车命令 浏览:219
无毒电影网站推荐几个 浏览:391
iphone网络显示名称 浏览:497
AW 5FP 浏览:547
微信群发敏感词在线 浏览:718
一个外国电影,有的人有超能力 浏览:20

友情链接