执行下面的程序的输出结果为
public class Test {
public static void main(String[] args) {
String s1 = "HelloWorld";
String s2 = new String("HelloWorld");
if (s1 == s2) {
System.out.println("s1 == s2");
} else {
System.out.println("s1 != s2");
}
if (s1.equals(s2)) {
System.out.println("s1 equals s2");
} else {
System.out.println("s1 not equals s2");
}
}
}s1 == s2
s1 not equals s2
s1 == s2
s1 equals s2
s1 != s2
s1 not equals s2
s1 != s2
s1 equals s2
代码中的字符串String在编译时会放入常量池,但new String()会产生新的字符串对象,所以s1!=s2;
String的equals方法是对字符串内容的比较,所以s1 equals s2
String的equals方法是对字符串内容的比较,所以s1 equals s2