黑马程序员技术交流社区
标题:
一共创建了多少个对象:String s = “a”+“b”+”c”+”d”;
[打印本页]
作者:
q953655369
时间:
2015-7-7 23:41
标题:
一共创建了多少个对象:String s = “a”+“b”+”c”+”d”;
一共创建了多少个对象:String s = “a”+“b”+”c”+”d”;
作者:
RockLee
时间:
2015-7-8 16:11
一个对象
作者:
RockLee
时间:
2015-7-8 16:16
我在这里敲段代码你就知道了。
String s1 = "a";
String s2 = s1 + "b";
String s3 = "a" + "b";
System.out.println(s2 == "ab");
System.out.println(s3 == "ab");
第一条语句打印的结果为false,第二条语句打印的结果为true,这说明javac编译可以对字符串常量直接相加的表达式进行优化,不必要等到运行期去进行加法运算处理,而是在编译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。
作者:
jake_liu
时间:
2015-7-8 16:27
我怎么觉得没有对象创建。。
作者:
jake_liu
时间:
2015-7-8 16:28
我理解错了吗?堆内存中没有任何对象的创建
作者:
为明天而奋斗
时间:
2015-7-8 18:04
有创建对象吗
作者:
何鹏程
时间:
2015-7-8 18:47
new呢,这在字符串池子里的吧。
作者:
闫文强
时间:
2015-7-8 19:04
代码运转中,大家一起加油努力
作者:
357955778
时间:
2015-7-8 21:01
2楼解释好详细,学习了!
作者:
e275919713
时间:
2015-7-8 21:07
2楼解释好详细,学习了!
作者:
q953655369
时间:
2015-7-8 21:25
谢谢大家了 我看懂了
作者:
发抖的_DtYJA
时间:
2015-7-8 23:01
很经典的题目,学习!
作者:
思考。。。
时间:
2015-7-8 23:15
应该是一个对象,其中的加号作为连接符看,就相当于“abcd”,即String s = “abcd”;所以我觉得是一个对象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2