3 个回答

第三个性能最好
第一个
out+=str会频繁的生成string对象,
第二个
虽说使用了StringBuffer,但是增加时需要进行动态扩容,会导致内存的复制,降低性能

第三个
也是用StringBuffer,但是预先分配StringBuffer的空间大小为目标的大小,添加新字符串时StringBuffer都能放下,不用扩容,提高了效率

我只想说m3的解的stringbuffer长度不应该在加一个str.length()么...因为假设i是5,实际执行是6次. 0-- == 0

如果变量i的数量小于一定值的话,m1是最快的;当i比较大时,m3比较快;另外,如果不考虑线程安全的话,jdk5之后可以采用StringBuilder。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题