jmfs.net
当前位置:首页>>关于在Java中String变量的最大长度是多少的资料>>

在Java中String变量的最大长度是多少

u2是无符号的16位整数,因此理论上允许的string literal的最大长度是2^16-1=65535.然而实际测试表明,允许的最大长度仅为65534,超过就编译错误了,有兴趣可以写段代码试试,估计是length还不能为0.

我们可以使用串接操作符得到一个长度更长的字符串,那么,string对象最多能容纳多少字符呢?查看string的源代码我们可以得知类string中是使用域 count 来记录对象字符的数量,而count 的类型为 int,因此,我们可以推测最长的长度为 2^32

String内部是以char数组的形式存储,数组的长度是int类型,那么String允许的最大长度就是Integer.MAX_VALUE了.又由于java中的字符是以16位存储的,因此大概需要4GB的内存才能存储最大长度的字符串.不过这仅仅是对字符串变量而言

String str="abc";这样定义的字符串是存在字符串池中的 String str=new String("abc")这样定义的字符串是在堆内存中的,然后被栈内存的对象str引用 所以字符串是对象,是在内存中存储的,不像基本数据类型有各自的长度,字符串应该是只要是内存不满,是没有长度限制的

String的最大长度=2的28次方-1=268,435,455.最大长度只和字符的个数有关.也就是理论上2G.

java中貌似是32768 某人测过的

var 没有长度限制,只要你的浏览器能承受40MB的长度.

取决于你JVM得内存,可以无限大到你内存那么大.没有限制的

Integer.MAX_VALUEInteger.MIN_VALUEFloat.MAX_VALUEFloat.MIN_VALUE .其余基本类似.不过String,Boolean类型好像没有规定最大长度

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

网站首页 | 网站地图
All rights reserved Powered by www.jmfs.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com