1 public class TestEquals {
2 public static void main(String[] args) {
3 // TestEquals t = new TestEquals();
4 // t.test1();
5
6 //equals():
7 //①只能处理引用类型变量②在Object类,发现equals()仍然比较的两个引用变量的地址值是否相等
8 //java.lang.Object类,是所有类的根父类
9
10 Person p1 = new Person();
11 Person p2 = new Person();
12 System.out.println(p1.equals(p2));//false --->true
13 System.out.println(p1==p2);//false
14
15 //像String 包装类 File类 Date类这些重写Object类的equals()方法,比较是两个对象的
16 //"实体内容"是否完全相同。
17 String str1 = new String("AA");
18 String str2 = new String("AA");
19 System.out.println(str1 == str2);//false
20 System.out.println(str1.equals(str2));//true
21 }
22
23 public void test1() {
24 // ==
25 // 1.基本数据类型:根据基本数据类型的值判断是否相等。相等返回true,反之返回false
26 // 注:两端数据类型可以不同,在不同的情况下,也可以返回true。
27 // 2.引用数据类型:比较引用类型变量的地址值是否相等。
28 int i = 12;
29 int j = 12;
30 System.out.println(i == j);// true
31 char c = 12;
32 System.out.println(i == c);// true
33 float f = 12.0F;
34 System.out.println(i == f);// true
35
36 int k = 65;
37 char a = 'A';
38 System.out.println(k == a);// true
39
40 Object obj1 = new Object();
41 Object obj2 = new Object();
42 System.out.println(obj1);
43 System.out.println(obj2);
44 System.out.println(obj1 == obj2);// false
45
46 Person p1 = new Person();
47 Person p2 = new Person();
48 Person p3 = p1;
49 System.out.println(p1 == p2);// false
50 System.out.println(p1 == p3);// true
51 }
52 }