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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 繁华落幕 中级黑马   /  2015-6-20 23:35  /  463 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 繁华落幕 于 2015-6-24 22:23 编辑

下面这条语句一共创建了多少个对象:String s = a+b+c+d; 为什么?

6 个回复

倒序浏览
0个或一个
回复 使用道具 举报
本帖最后由 ETOLIA 于 2015-6-21 09:14 编辑

。。。未必是[小]问题吧。就创建了一个。

String s = "a" + "b" + "c" + "d" ;
赋值符号右边的"a"、"b"、"c"、"d"都是常量
对于常量,编译时就直接存储它们的字面值而不是它们的引用
在编译时就直接讲它们连接的结果提取出来变成了"abcd"
该语句在class文件中就相当于String s = "abcd"
然后当JVM执行到这一句的时候, 就在String pool里找
如果没有这个字符串,就会产生一个。
回复 使用道具 举报
新人求支持,求鼓励
回复 使用道具 举报
这没有创建对象吧,就是字符串
回复 使用道具 举报
一个;常量在编译时会自动娄加,就是说编译的时候是String s="abcd";这时候常量池中就会建立一个"abcd"的对象指向s;
回复 使用道具 举报
xxz 来自手机 中级黑马 2015-6-21 17:50:35
7#
就一个对象 。String  s=new  String();几个常量组成一个字符串 把地址赋给 s。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马