class X{
public String s = "123";
}
class Y{
public String s = new String("123");
}
class Z{
public String s = "12" + "3";
}
public class StringTest2 {
public static void main(String[] args) {
X x =new X();
Y y =new Y();
Z z =new Z();
System.out.println(x.s == y.s);
// 当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串
// (用 equals(Object) 方法确定),
// 则返回池中的字符串。
// 否则,将此 String 对象添加到池中,并返回此 String 对象的引用。
System.out.println(x.s == y.s.intern());
System.out.println(x.s == z.s);
String s1 = "1";
String s2 = "12";
String s = s1 + s2;
System.out.println(x.s == s);
System.out.println(x.s == (s1 + s2).intern());
}
}
public String s = "123";
}
class Y{
public String s = new String("123");
}
class Z{
public String s = "12" + "3";
}
public class StringTest2 {
public static void main(String[] args) {
X x =new X();
Y y =new Y();
Z z =new Z();
System.out.println(x.s == y.s);
// 当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串
// (用 equals(Object) 方法确定),
// 则返回池中的字符串。
// 否则,将此 String 对象添加到池中,并返回此 String 对象的引用。
System.out.println(x.s == y.s.intern());
System.out.println(x.s == z.s);
String s1 = "1";
String s2 = "12";
String s = s1 + s2;
System.out.println(x.s == s);
System.out.println(x.s == (s1 + s2).intern());
}
}