**String s = new String("abc");**究竟创建了几个对象?

视情况而定,可能创建两个,可能创建一个;

  • 当字符串常量池已经存在"abc",则只在堆中创建 s 对象,此时为创建一个对象

  • 当字符串常量池不存在"abc",则先在串池中添加"abc",然后在堆中创建对象 s,此时为创建两个对象

如何在IDEA中查看创建对象的个数?

![](http://caojiwen.oss-cn-beijing.aliyuncs.com/img/Load classes.png)