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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周斌 中级黑马   /  2012-11-5 17:14  /  1960 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. String A,B,C
  2. A = "a";
  3. b = "b";
  4. A = A+B;
  5. StringBuffer D = new StringBuffer("abc");
  6. D = D.append("567");
复制代码
这段小程序创建了几个对象呢?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
String A,B,C
A = "a"; 第一个 “a”
b = "b"; 第二个 "b"
A = A+B; 第三个 "ab"
StringBuffer D = new StringBuffer("abc"); 第四个 new StringBuffer(),第5个"abc";
D = D.append("567");这里是第六个

因为String是引用数据类型,所以当内存里没有引用所需要的数据的时候会单独创一个出来。理论上应该是这样

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
二楼这么霸气
回复 使用道具 举报
01.String A,B,C

02.A = "a"; //这是第一个

03.b = "b";//这是第二个

04.A = A+B;//这是第三个

05.StringBuffer D = new StringBuffer("abc");

06.D = D.append("567");//这个不是新建对象。
StringBuffer D//这是第四个
new StringBuffer("abc");//这是第五个
在String中的对象我就不讲l

而StringBuffer 就不一样了。它是一个容器,值是可以改变的
06.D = D.append("567")不是新的对象,它还是表示StringBuffer D,不是新的对象
一共就是五个对象


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马