java里,string的长度是固定的?

看面试题string和stringbuffer的区别,提到string长度是固定的,这个长度是多少啊... 看面试题string和stringbuffer的区别,提到string长度是固定的,这个长度是多少啊 展开
 我来答
舞步漫步
2010-06-28 · TA获得超过350个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:119万
展开全部
String s;这个只是声明了一个变量,除了变量本身,是没有长度的;
String s = "sss";这个与"sss"的值的长度有关,此时s.length将为3;
但即使给s执行s + "1"操作,Java虚拟机也将创建一个新的字符串"sss1",这个与刚才的"sss"指向了不同的地址空间,此时s.length为4;
这是因为String的实现是final类型的char[],一旦对其赋值,其所对应的地址空间将不会改变;如果再次赋值或者执行"s"都将开辟新空间创建新对象,所以说每一个Java栈上的String对象的长度是固定的。
yeren1989
推荐于2016-01-24 · TA获得超过520个赞
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:126万
展开全部
所谓长度固定不是你理解的意思
而是说String类中存储的char[]是final的,不能修改,你对String的操作实际上是产生了一个新的String,对于某一个String来说,长度就是固定的了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2010-06-28 · TA获得超过5621个赞
知道大有可为答主
回答量:1459
采纳率:0%
帮助的人:1353万
展开全部
你理解错了。

Java 中的 String 对象是一旦创建不可被修改的,对它的任何操作(如用 + 号连接都会导致新的 String 对象被创建);

而 StringBuffer 是可以对同一个对象进行 append(添加)、delete(删除字符)、insert(插入字符)等操作。

因此经常说如果你想提高字符串处理性能的话,最好用 StringBuffer 的 append 方法而不是用 String 的 + 号来连接两个字符串。

题目其实是这个意思,只是说法不太好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuanyuan032786
2010-06-28
知道答主
回答量:40
采纳率:0%
帮助的人:0
展开全部
String 的长度被设计成只能通过方法读取。为了防止出现类似 str.length = 5; 之类的语句。因为这是不合理的语句,用户是不应该这样设定字符串的长度的,应该只能读取它。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式