收录日期:2021/01/17 14:45:47 时间:2016/08/28 06:42:46 标签:Java SE
刚刚看了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
这个文章里面有讲到这二者的区别的。文章不错,建议都看看。
该回复于2013-03-01 16:15:50被管理员删除
引用 楼主 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";
这样子应该是不一样的吧
              
            ……

配置windows driver kit编译环境出现的问题 提高英语口语的六大技巧 TabNavigator如何动态增加页和动态删除页? 如何利用c++制作liunx操作系统的升级程序 帮我分析一下考研方向 错误类型:Microsoft OLE DB Provider for ODBC Drivers (0x80040E37) 大家来鄙视我吧 MYSQL 分页语句 请问一个用VM当生产库然后导出数据到物理机的问题~! 健康档案外包 求助:flash制作飘扬的红旗和光芒 Java大家都用什么开发工具 我的XP安装SP3后,出现闪屏的现象!怎么回事啊? VC Dailog 渐变直至透明度为0,又从透明度为0直至100 VC 单文档与对话框之间的通信(利用MSComm控件编程) socket 编程两问,请大家指教? 求助MFC线程中接收结构体失败? sun.misc.Launcher 欢迎喜欢c++MFC 设计的爱好者,和大虾们来我们的QQ讨论群!107416732 C++爱好者 CStdioFile 有什么注意事项呢 HIBERNATE主键唯一问题 oracle11g在win7下安装的问题 为何不能使用控件的属性和方法 菜鸟提问 关于继承 C#菜鸟求助,如何在经过随机加密的控件中填写信息 如何用treeview显示多个页面? C++ 概念释疑 再谈enum-=运算[抛砖引玉] c# 怎样用代码改变listview中item的顺序 大狭快帮帮忙啊!关于css 主题切换的问题!!!