1.用双引号创建
2.用new String方式创建
3.双引号相加创建
4.两个new String相加时
5.双引号加new String创建或者new String加双引号创建
总结:
1.只在常量池上创建常量
2.只在堆上创建对象(指的是AA)
String a2 = new String("A") + new String("A");
3.在堆上创建对象,在常量池上创建常量
第一种方式.
第二种方式.
扫描二维码关注公众号,回复:
6226860 查看本文章
附加:public String intern()
返回字符串对象的规范化表示形式。
一个初始时为空的字符串池,它由类 String 私有地维护。
当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。