1/equals 在不重写的情况下,底层靠==
运算符实现,功能与==运算符相同。
2/重写 一般比较数值
public class test {
private static String s1 = "abc";//在栈中创建,其引用指向常量池中"abc"的地址
private static String s2 = "abc";//在栈中创建,其引用指向常量池中"abc"的地址
private static String s3 = new String("abc");//在堆中创建
private static String s4 = new String("abc");//在堆中创建
public static void main(String[] args) {
System.out.println(s1 == s2);//true ,比较地址,都为指向常量池"abc"的地址
System.out.println(s3 == s4);//false, 在堆中的地址不同
System.out.println(s1 == s3);//false,地址不同
System.out.println(s1.equals(s2));//true ,比较值
System.out.println(s1.equals(s3));//true,比较值
System.out.println(s3.equals(s4));//true,比较值
}
}