最近小弟面试中遇到了这个不干肯定的问题?所以请诸大虾帮忙解决一下!
String name=new StringBuffer("my");
name+="is";
name+="herd";

StringBuffer name=new StringBuffer("my");
name.append("is");
name.append("herd").toString();分别创建了几个对象?分别是什么? 两者哪个效率高些,说明原因?

解决方案 »

  1.   

    第一个创建了0个,因为编译不通过既然用StringBuffer了,就始终用append
      

  2.   

    小公司装有技术,真不知道初期考这个做什么?!String name=new StringBuffer("my");StringBuffer根本就不是String的子类,String是final类,编译不通过。楼主只要知道,String类是用来保存字符串常量的,对字符串拼接操作时用StringBuffer/StringBuilder效率高,就行了,创建了几个对象现在不必深究。
      

  3.   

    第一个创建了两个,第二个创建了一个,用String会比较快些,个人认为还是用StringBuffer的好,因为用String的话,创建的对象用完后java不能自动回收