==
基本定义:==对于基本类型来说是比较值是否相等,对于引用类型来说是比较地址值是否相等
equals
基本定义:被用来检测两个对象是否相等,即两个对象的内容是否相等,例如String类型为对象,如果用==比较的话则会自动比较两个String类型的地址值相等,此时则可以使用equals来比较两个对象的内容是否相等
例如:
public class Test {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");
System.out.println(s1 == s2);
System.out.println(s3 == s4);
System.out.println(s3.equals(s4));
}
}
上述返回结果为true false true
特别说明:
String类型如果用new的方式创建则系统会在堆中为两个不同的String对象开辟一块空间(即使两个String对象内容相等)