java中,两个String类型的字符串相加得到一个新的字符串,请问原来的字符串是否改变,为什么?
6个回答
展开全部
java中 有String 和StringBUffer
String 长度不可变
StringBuffer长度可变
String相加 原来的不变
可变不可变的意思是说
你新建一个String型的 你第一次使用呢 他就给你分配那么长的内存堆栈 不可变长度的
你要给他重新赋值了呢 他是重新开辟了一块内存空间指针指向他
原来的内存空间 会被gc() 垃圾回收掉 这样消耗系统内存
而stringBuffer呢 开辟出来了 长度可变了 你重新赋值了之后还是指向那块内存 只不过长度变了
String 长度不可变
StringBuffer长度可变
String相加 原来的不变
可变不可变的意思是说
你新建一个String型的 你第一次使用呢 他就给你分配那么长的内存堆栈 不可变长度的
你要给他重新赋值了呢 他是重新开辟了一块内存空间指针指向他
原来的内存空间 会被gc() 垃圾回收掉 这样消耗系统内存
而stringBuffer呢 开辟出来了 长度可变了 你重新赋值了之后还是指向那块内存 只不过长度变了
展开全部
看你怎么加了,通常字符串相加是将两个字符串连接起来,要是要将数值型的字符串相加,转化的时候会变成数值型的。至于你所说的原来的字符串,不知道你想知道什么,相加的结果会交给变量,原来的值不会变,内存地址没有改变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String str1="abc";
String str2="bcd";
String str3=str1+str2;
将字符串str1和str2合并赋值给str3,str1与str2并没有改变,因为并没有对这两个字符串做出修改。
String str2="bcd";
String str3=str1+str2;
将字符串str1和str2合并赋值给str3,str1与str2并没有改变,因为并没有对这两个字符串做出修改。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要看你怎么相加了如果是c=a+b a跟b没有改变 如果是a=a+b;那么a改变了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-12-01
展开全部
通常字符串拼接只是两个字符串简单的相加,不会改变原字符串的属性、、、、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询