==的作用:
基本类型:比较的就是值是否相等
引用类型:比较的就是地址值是否相同
equals的作用:
引用类型:默认情况下,比较的是地址值
特殊:String、Integer、Date这些类库中的equals被重写了,比较的是内容而不是地址!
例如:
public static void main(String[] args) {
Integer a = 11;
Integer b = 11;
Integer c = 22;
System.out.println(a==b);
System.out.println(a==c);
System.out.println(a.equals(b));
System.out.println(a.equals(c));
}
结果:
true
false
true
false
面试题:请解释字符串比较中“==”和equals()的区别?
答:==:比较的是两个字符串的内存地址(堆内存)的值是否相等,属于值的比较;
equals():比较的就是两个字符串的内容,属于内容比较。
例如:
public class Main {
public static void main(String[] args) {
String s = new String("abc");
String s1 = "abc";
String s2 = "def";
String s3 = new String("abc");;
System.out.println(s==s1);
System.out.println(s==s2);
System.out.println(s==s3);
System.out.println(s.equals(s1));
System.out.println(s.equals(s2));
System.out.println(s.equals(s3));
}
}
结果:
false
false
false
true
false
true



