==

  1. ==既可以判断基本类型,又可以判断引用类型。
  2. 如果判断基本类型,则判断值是否相等。
  3. 如果判断引用类型,则判断的是地址是否相等(即判定是否为同一个对象)。
1
2
3
4
5
A a = new A();
A b = a;
A c = b;
System.out.println(a == c);//true
System.out.println(b == c);//true

equals

  1. Object类中的方法,只能判断引用类型
  2. 默认判断地址是否相等,子类中往往重写该方法,用于判断内容是否相等。
1
2
3
4
5
6
7
8
9
10
11
12
//Object中的equals方法
public boolean equals(Object obj){
return (this == obj);
}

//Integer中的equals方法
public boolean equals(Object obj){
if(obj instanceof Integer){
return value == ((Integer)obj).intValue();
}
return false;
}