How many objects are created

后端 未结 4 1388
栀梦
栀梦 2020-12-02 00:15

I was having a discussion about usage of Strings and StringBuffers in Java. How many objects are created in each of these two examples?

Ex

4条回答
  •  囚心锁ツ
    2020-12-02 00:58

    I've used a memory profiler to get the exact counts.

    On my machine, the first example creates 8 objects:

    String s = "a";
    s = s + "b";
    s = s + "c";
    
    • two objects of type String;
    • two objects of type StringBuilder;
    • four objects of type char[].

    On the other hand, the second example:

    StringBuffer sb = new StringBuffer("a");
    sb.append("b");
    sb.append("c");
    

    creates 2 objects:

    • one object of type StringBuilder;
    • one object of type char[].

    This is using JDK 1.6u30.

    P.S. To the make the comparison fair, you probably ought to call sb.toString() at the end of the second example.

提交回复
热议问题