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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

ebichuman

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

String a  = "ddd"   
a= a+"aaa";
这里的a= a+"aaa";在执行的时候是不是又开辟了一个内存空间?
for(10次){
a= a+"aaa";
}如果是这样的话,是不是每执行一次都要开辟一次空间,。也是就开辟10次


如果说上面答案是是的话,String 和Stringbuilder 的区别是不是主要就是,Stringbuilder比较节约内存- -

2 个回复

倒序浏览
“String对象一旦声明则不能轻易改变,如果要改变则需要先断开原有的对象引用,再开辟新的对象,之后再指向新的对象空间。”例如:String s = "abc";s这个变量的指针是指向"abc"这个字符串在内存中的首地址,执行s = "d"的时候,s所指向的内存地址发生了变化,已经不是指向"abc"的首地址,而是把"d"存在内存中,把s的指针指向了"d"的地址.而Stringbuilder都是指向同一个内存地址
回复 使用道具 举报
沙发...................
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马