当前位置:编程学习 > JAVA >>

String问题

刚刚看了String与StringBuffer的区别 大致明白了 但是请教各位大神 如果是这样的话
String str = "aaa"+"bbb";
这样采用拼串的方法初始化一个String与
String str = "aaa";
str += "bbb";
这样子应该是不一样的吧 --------------------编程问答-------------------- 一样的吧?
都会创建三个对象,str最终引用的都是最后一个对象。(前提是字符串池里面原先没有) --------------------编程问答-------------------- 第一个不会创建三个对象。编译器没那么傻 --------------------编程问答--------------------
引用 1 楼 abc41106 的回复:
一样的吧?
都会创建三个对象,str最终引用的都是最后一个对象。(前提是字符串池里面原先没有)

不好意思,我错了

编译器在编译的时候会进行优化,所以在编译的过程中aaa和bbb被合成了一个字符串"aaabbb",因此,如果缓存池中目前没有aaabbb这个对象,那么会产生一个,即"aaabbb",且栈中产生一个引用str指向它

对于第二种的详细解释,看下面这个链接:
http://blog.csdn.net/zhangerqing/article/details/8093919
这个文章里面有讲到这二者的区别的。文章不错,建议都看看。 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 楼主 weiryou10 的回复:
刚刚看了String与StringBuffer的区别 大致明白了 但是请教各位大神 如果是这样的话
String str = "aaa"+"bbb";
这样采用拼串的方法初始化一个String与
String str = "aaa";
str += "bbb";
这样子应该是不一样的吧
              
              
        ……


String str = "aaa";
str += "bbb";

其实是
str=str+"bbb";
str="aaa"+"bbb";
所以俩个内容是一样的 --------------------编程问答--------------------
引用 5 楼 student_2008 的回复:
引用 楼主 weiryou10 的回复:
刚刚看了String与StringBuffer的区别 大致明白了 但是请教各位大神 如果是这样的话
String str = "aaa"+"bbb";
这样采用拼串的方法初始化一个String与
String str = "aaa";
str += "bbb";
这样子应该是不一样的吧
              
            ……

补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,