黑马程序员技术交流社区

标题: 字符串创建对象问题 [打印本页]

作者: 宋旭东    时间: 2013-7-3 19:13
标题: 字符串创建对象问题

这条语句一共创建了多少个对象?为什么?,这个问题纠结了我好久,请各位大大详细的解释下?

作者: lanbuohan    时间: 2013-7-3 19:31
这个问题挺有意思,不知道
作者: 张洪慊    时间: 2013-7-3 19:33
1.简单理解下
  String s="a"+"b"+"c"+"d";
在编译时就直接将它们连接的结果提取出来变成了"abcd"
  也就是:String s="abcd";
2.利用下 javap -c 类 ,也就是反编译java字节码文件:  
  简单说下JVM指令(不用太过深究,仅帮助你理解)
  ldc在这里作用是:
   将常量池中的"abcd"的引用压入操作数栈(关键是看后面的//String abcd,说明了编译器对该语句的处理)
astore_1
  将栈顶引用弹出赋给1号局部变量即s


作者: 张洪慊    时间: 2013-7-3 22:02
关于这个问题,我相信论坛好多帖子都讨论过,你可以搜搜,有总结的更详细的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2