**
String s = new String("abc");
**究竟创建了几个对象?
视情况而定,可能创建两个,可能创建一个;
-
当字符串常量池已经存在"abc",则只在堆中创建 s 对象,此时为创建一个对象
-
当字符串常量池不存在"abc",则先在串池中添加"abc",然后在堆中创建对象 s,此时为创建两个对象
如何在IDEA中查看创建对象的个数?
![](http://caojiwen.oss-cn-beijing.aliyuncs.com/img/Load classes.png)