A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 搁浅丶那份 中级黑马   /  2015-7-8 22:21  /  1334 人查看  /  20 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚刚看到String类,在定义String变量时,变量的长度是否可以是无限的,问了一下度娘,说最长长度不能超过64k,不是很懂,有大神懂的给讲讲。。。。。小白先谢谢了。。。

20 个回复

正序浏览
梁思宇 发表于 2015-7-9 01:37
这个问题....
先在eclipse里查原码,得到String的构造方法this.value = new char[0];
就是说,是一个字符数组 ...

我说的是定义变量的长度啊。。。。
回复 使用道具 举报
本帖最后由 新手ing 于 2015-7-9 20:49 编辑

看看源码,有没有思路
回复 使用道具 举报
  不懂,在看大神们解说
回复 使用道具 举报
你想啊,内存就那么大,不可能有什么东西是无限的对吧,所以说操作系统底层对这些东西肯定有限制的,只不过基本用不到那么多,所以我们一般不考虑而已,这一个字符串写到64K的话我也是醉了
回复 使用道具 举报
你要知道他的长度干嘛
回复 使用道具 举报
什么64K?,String的计数是count来计的,count是int类型你说是多少?2的32次方4个G
回复 使用道具 举报
赞一个!
回复 使用道具 举报
应该不止64k吧
回复 使用道具 举报
貌似应该不止64k才对
回复 使用道具 举报
赞一个,分享
回复 使用道具 举报
这个你可以去查String的源码,把该类的构造方法看一遍,你就知道了,有很多
回复 使用道具 举报
楼主很好学。。。
回复 使用道具 举报
我觉得跟跟byte是-127~127是一样的吧   分配空间的时候 应该会有一个额度
回复 使用道具 举报
我也想知道String的长度限制。
回复 使用道具 举报
这个问题....
先在eclipse里查原码,得到String的构造方法this.value = new char[0];
就是说,是一个字符数组.
那么字符数组的最大长度为多少,定义的时候,char[]的中括号中是要写一个整型的
整型的最大值2147483647
于是试了下,发现出现了异常
然后再试试楼主的64k,1k=1024byte,64k=65536....试了下,完全没有问题
最后,char[] chars = new char[89304798];这个是我电脑的极限,但我怀疑不准确,所以我关闭eclipse重新试了下
然而,数字并没有变化.....然后我开始测试这个数组能否转化成字符串..
于是,又报错了,虽然数组没事,但是却不能转化为字符串...
最后,        char[] chars = new char[44652490];减了一半的体积,才能成功转化为字符串....
不过,总比65535要大很多的了..
回复 使用道具 举报
还没学到这个知识点
回复 使用道具 举报
肯定会有个长度的啊
回复 使用道具 举报
micro_hx 发表于 2015-7-8 23:53
你怎么觉得毫无意义呢?? 人家好歹也思考过了啊。。。

是的,思考是好的。。。
回复 使用道具 举报
成佳裕 发表于 2015-7-8 23:45
没研究过这个问题,觉得毫无意义啊。。。。。。。。

你怎么觉得毫无意义呢?? 人家好歹也思考过了啊。。。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马