总结:
new String("xxx"):"xxx"字面量自动常量池里,但返回的是堆中的对象引用。
new String("xxx") + new String("bbb"): xxx 和 bbb 会自动放到常量池,但是结果返回的是堆中的对象;常量池中并不存在xxxbbb
intern():如果常量池中存在此对象的字符串,则不作操作,返回常量池对象引用;如果存在堆中引用,则返回引用;如果不存在,则将堆中的引用存储在常量池中,并返回此引用。
总结:
new String("xxx"):"xxx"字面量自动常量池里,但返回的是堆中的对象引用。
new String("xxx") + new String("bbb"): xxx 和 bbb 会自动放到常量池,但是结果返回的是堆中的对象;常量池中并不存在xxxbbb
intern():如果常量池中存在此对象的字符串,则不作操作,返回常量池对象引用;如果存在堆中引用,则返回引用;如果不存在,则将堆中的引用存储在常量池中,并返回此引用。