1.字面量创建String 对象:
String s1="abc"; //常量池中添加字符串“abc”,返回引用地址给s1
String s2="abc"; //通过equals()判断常量池中已有字符串“abc”,返回相同引用
2.用new创建String 对象:
String s3=new String("def"); //在常量池中添加对象"def",在堆中创建对象"def",返回对象"def"的引用
String s4=new String("def"); //常量池中已有对象"def",不做处理,在堆中创建对象"def",返回对象"def"的引用
3.字面量相加:
String s5="x"+"y"; //经过jvm优化,直接在常量池中添加“xy”
4.通过StringBuilder实现:
String s6=new String("1")+new String("1")+new String("2"); //在常量池中添加"1"和"2"两个对象,在堆中创建对象"112",并返回对象引用