刚刚看了String与StringBuffer的区别 大致明白了 但是请教各位大神 如果是这样的话
String str = "aaa"+"bbb";
这样采用拼串的方法初始化一个String与
String str = "aaa";
str += "bbb";
这样子应该是不一样的吧

解决方案 »

  1.   

    一样的吧?
    都会创建三个对象,str最终引用的都是最后一个对象。(前提是字符串池里面原先没有)
      

  2.   

    不好意思,我错了编译器在编译的时候会进行优化,所以在编译的过程中aaa和bbb被合成了一个字符串"aaabbb",因此,如果缓存池中目前没有aaabbb这个对象,那么会产生一个,即"aaabbb",且栈中产生一个引用str指向它对于第二种的详细解释,看下面这个链接:
    http://blog.csdn.net/zhangerqing/article/details/8093919
    这个文章里面有讲到这二者的区别的。文章不错,建议都看看。
      

  3.   


    String str = "aaa";
    str += "bbb";其实是
    str=str+"bbb";
    str="aaa"+"bbb";
    所以俩个内容是一样的