String A = "a";
String B = "b";
A = A+B;
StringBuffer sb = new StringBuffer("abc");
sb.append("123");问,上面的语句中一共创建了几个对象???

解决方案 »

  1.   

    至少3个。java有字符串池的概念
      

  2.   

    修正一下,感觉是5个
    "a"
    "b"
    A+B
    "abc"
    "123" A,B,sb不能称为对象
    只能说是保存对象引用的变量
      

  3.   

    我觉得这位兄弟的解释比较合理,但是我有一点还是不太明白。前面3个语句很好理解,分别创建了“a”,“b”,A+B三个对象。
    关键是StringBuffer sb = new StringBuffer("abc"); 这一句究竟是一个对象还是2个对象??首先“abc”应该是一个对象,然后又用了new关键字,按理说也应该有了一个StringBuffer的对象吧???(这里不清楚)下面又有一个“123”的对象。
    所以我有点糊涂,不知道是5个还是6个。
    如果我哪里理解有问题,麻烦大家指点一下。
      

  4.   


    恩,你是对的
    偶疏忽了,确实new StringBuffer 也会产生一个对象
    那这样的话,就是6个啦