- == 可以比较基本数据类型和引用数据类型
 - 比较基本数据类型时 比较数值是否相等
 - 比较引用数据类型时 比较地址值
 - equals是方法 不是运算符
 - equals只能用于引用数据类型比较
 - Object类中的equals方法使用 == 比较(地址值比较)
 String、Date、File、包装类等重写了equals方法, 他们比较的是值是否相等 ```java // 基本数据类型
// byte short int float double long char Booleanint a = 10;double b = 10.0;// 自动类型提升 a提升为10.0 值相等 输出trueSystem.out.println(a == b);// 对象 引用数据类型Person p1 = new Person();Person p2 = new Person();// 引用数据类型 ==比较地址值; 因为在堆空间有两个Person 栈空间两个变量 变量地址值不同 输出falseSystem.out.println(p1 == p2);// object类中的equals方法使用==比较 引用数据类型比较地址值是否相同 输出falseSystem.out.println(p1.equals(p2));// 将p1变量的地址变更为p2的地址 此时两个变量指向同一个地址值 输出truep1 = p2;System.out.println(p1 == p2);String s1 = new String();// 将s2变量指向s1变量地址值String s2 = s1;s2 = "测试";// String类重写了equals方法 比较值(内容)是否一致 输出falseSystem.out.println(s2.equals(s1));s1 = "哈哈";s2 = "哈哈";// 值相等 输出tureSystem.out.println(s2.equals(s1));
```
