问题描述
最近小弟面试中遇到了这个不干肯定的问题?所以请诸大虾帮忙解决一下!Stringname=newStringBuffer("my");name+="is";name+="herd";与StringBuffername=newStringBuffer("my");name.append("is");name.append("herd").toString();分别创建了几个对象?分别是什么?两者哪个效率高些,说明原因?
解决方案
解决方案二:
前者实则1个,隐含2个...后者1个..比较一下前者快一点
解决方案三:
第一个创建了0个,因为编译不通过既然用StringBuffer了,就始终用append
解决方案四:
小公司装有技术,真不知道初期考这个做什么?!Stringname=newStringBuffer("my");StringBuffer根本就不是String的子类,String是final类,编译不通过。楼主只要知道,String类是用来保存字符串常量的,对字符串拼接操作时用StringBuffer/StringBuilder效率高,就行了,创建了几个对象现在不必深究。
解决方案五:
第一个创建了两个,第二个创建了一个,用String会比较快些,个人认为还是用StringBuffer的好,因为用String的话,创建的对象用完后java不能自动回收
解决方案六:
引用4楼shichao2008的回复:
第一个创建了两个,第二个创建了一个,用String会比较快些,个人认为还是用StringBuffer的好,因为用String的话,创建的对象用完后java不能自动回收
不对,再想想。
时间: 2024-11-03 12:26:26