第四题两个代码产生5个对象,通过jclasslib看字节码文件就可以知道:
String a = "xiaoguo"; // 字符串常量池1个
String b = new String(a + "cjx");
/**
* 对象1:字符串常量池里面的 "xiaoguo"
* 对象2:堆空间一个新对象
* 对象3:new StringBuilder(),线程不安全。
* 对象4:字符串常量池里面的 "cjx"
*
* * 深入剖析: StringBuilder的toString():
* * 对象5 :new String("xiaoguocjx")
* * 强调一下,toString()的调用,在字符串常量池中,没有生成"xiaoguocjx"
*
*/