StringBuffer对象问题

时间:2010-07-30 09:04:08

标签: java

StringBuffer sb = new StringBuffer("abc");
StringBuffer sb1 = sb;

StringBuffer sb2 = new StringBuffer("abc");

创建了多少个对象?

3 个答案:

答案 0 :(得分:4)

  • 创建了2 StringBuffer个对象,因为有2个new
  • 创建了1 String个对象[JLS,3.10.5 =>保证在同一个虚拟机中运行的任何其他代码重复使用该对象,该代码恰好包含相同的字符串文字。

答案 1 :(得分:1)

  • 2个StringBuffer个对象,每个对象都包含char[]
  • 1 String个对象,其中包含char[]

总共有6个对象。

如果之前已经运行了任何引用“abc”的代码,则不会创建String,因此只会创建4个对象。

答案 2 :(得分:0)

您可以启动调试器并简单计算您运行新版本的次数...高级:使用https://hat.dev.java.net/http://www.eclipse.org/mat/或其他堆工具。