String问题
刚刚看了String与StringBuffer的区别 大致明白了 但是请教各位大神 如果是这样的话String str = "aaa"+"bbb";
这样采用拼串的方法初始化一个String与
String str = "aaa";
str += "bbb";
这样子应该是不一样的吧 --------------------编程问答-------------------- 一样的吧?
都会创建三个对象,str最终引用的都是最后一个对象。(前提是字符串池里面原先没有) --------------------编程问答-------------------- 第一个不会创建三个对象。编译器没那么傻 --------------------编程问答--------------------
不好意思,我错了
编译器在编译的时候会进行优化,所以在编译的过程中aaa和bbb被合成了一个字符串"aaabbb",因此,如果缓存池中目前没有aaabbb这个对象,那么会产生一个,即"aaabbb",且栈中产生一个引用str指向它
对于第二种的详细解释,看下面这个链接:
http://blog.csdn.net/zhangerqing/article/details/8093919
这个文章里面有讲到这二者的区别的。文章不错,建议都看看。 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
String str = "aaa";
str += "bbb";
其实是
str=str+"bbb";
str="aaa"+"bbb";
所以俩个内容是一样的 --------------------编程问答--------------------
补充:Java , Java SE