一、new String("ab")会创建几个对象?
会创建2个对象:
- 对象1:new关键字在堆空间中创建的String;
- 对象2:字符串常量池中的对象"ab"。
二、new String("a") + new String("b")会创建几个对象?
会创建6个对象:
- 对象1:new StringBuilder();
- 对象2:堆中的new String("a");
- 对象3:字符串常量池中的"a";
- 对象4:堆中的new String("b");
- 对象5:字符串常量池中的"b";
- 对象6:调用StringBuilder.toString()会创建一个new String("ab")在堆中。
(ps:调用toString(),不会在字符串常量池中生成新对象ab)