创建了多少个对象(字符串池+堆)

时间:2015-10-02 13:30:27

标签: java

String s = new String("a");
    s.concat("b");
    s.concat("c");

据我了解,没有。计数:

在游泳池 - 3(" a"," b"," c")

在堆-3中(" a"," ab"," ac"),其中" ab"和" ac"有资格进行垃圾收集。

我是对的吗?

我有这种困惑。 请帮忙。

1 个答案:

答案 0 :(得分:3)

你是对的。

  • 恒定池中的3个对象(" a"," b"," c")。所有文字和
  • 由于String是不可变的,所以在堆中
  • 3。每个concat创建一个String 对象。

总共6个。