String A,B,C
A=“a”
B=“b”
A=A+B
StringBuffer D=new StringBuffer(“abc”)
D=D.append(“567”)到底创建了几个对象?(注:引用不是对象,不要把引用计算在内)

解决方案 »

  1.   

    到底创建了几个对象,不单单是String对象,那就太多了,随便数几个来一个类在使用前必须被装载,装载的产物就是java.lang.Class类的对象,这就有:String.class StringBuffer.class
    String里还用了一个char[],这也是一个对象,另外它对应的java.lang.Class类的对象为[c
    StringBuffer中的以此类推。
    一个类被加载它的父类也必须被加载,因此,还有Object.class等。太多了,不列了
      

  2.   

    http://blog.csdn.net/zhangerqing/article/details/8093919
      

  3.   

    我觉得,创建了一个对象,字符串常量在内存中是共享的,不算是对象,只有new 在内存新开辟一个空间,才算是创建一个对象,但在java中要创建几个对象真的有那么重要吗?又不用手动去管理内存!
      

  4.   

    共6个对象,"a","b',"ab","abc","567","abc567"
      

  5.   

    如果再加一个D=D.append(“def”);
    则是7个对象,"a","b',"ab","abc","567","def","abc567def"
    因为第一个字符串常量都是一个对象,StringBuffer对象.append方法都是在原对象上操作