A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一共创建了多少个对象:String s = “a”+“b”+”c”+”d”;

评分

参与人数 1黑马币 +2 收起 理由
鲤鱼仙 + 2

查看全部评分

12 个回复

倒序浏览
一个对象
回复 使用道具 举报
我在这里敲段代码你就知道了。
String s1 = "a";
String s2 = s1 + "b";
String s3 = "a" + "b";
System.out.println(s2 == "ab");
System.out.println(s3 == "ab");
第一条语句打印的结果为false,第二条语句打印的结果为true,这说明javac编译可以对字符串常量直接相加的表达式进行优化,不必要等到运行期去进行加法运算处理,而是在编译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。
回复 使用道具 举报
我怎么觉得没有对象创建。。
回复 使用道具 举报
我理解错了吗?堆内存中没有任何对象的创建
回复 使用道具 举报
有创建对象吗
回复 使用道具 举报
new呢,这在字符串池子里的吧。
回复 使用道具 举报
代码运转中,大家一起加油努力
回复 使用道具 举报
2楼解释好详细,学习了!
回复 使用道具 举报
2楼解释好详细,学习了!
回复 使用道具 举报
谢谢大家了     我看懂了
回复 使用道具 举报
很经典的题目,学习!
回复 使用道具 举报
应该是一个对象,其中的加号作为连接符看,就相当于“abcd”,即String s = “abcd”;所以我觉得是一个对象。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马