创建了两个对象:
常量池中有一个对象,在堆内存中也有一个对象,是复制过去的。s1的地址指向的是堆内存的地址。
可以看以下例子:
String s1 = new String("abc");//堆内存的地值值
string s2 = "abc";
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
输出的结果是
false
ture
s1 == s2时,由于一个是堆内存,一个是常量池的内存,故两者是不同的。