1,equals() :

  1. equals 多用于字符串的内容比较;
  2. equals 方法来自Object类,所以,任何对象都能调用这个方法,
  3. 在Object类里面的原生实现,本质也是使用 == 比较两个对象的地址值是否相同;

    1. //源码:
    2. public boolean equals(Object obj) {
    3. return (this == obj);
    4. }
  4. 当对equals进行重写时,就可以根据实际逻辑进行内容的比较;

    1. @Override
    2. public boolean equals(Object o) {
    3. if (this == o) return true;
    4. if (o == null || getClass() != o.getClass()) return false;
    5. Animal animal = (Animal) o;
    6. if (age != animal.age) return false;
    7. return color != null ? color.equals(animal.color) : animal.color == null;
    8. }

    2,== :

  5. 基本数据类型: 比较的是数据值是否相同;

  6. 引用数据类型: 比较的是地址值是否相同;

    3,日常使用:

    当变量是基本数据类型时,使用 == 去比较两个的数据值;
    当变量是引用数据类型时,使用 equals 去比较两者的内容;