Java中对象的比较
1. 关于对象值相等的比较 1.1 == vs equals p == q 表示的是 p 和 q 两个引用指向同一个对象 p.equals(q) 表示 p 指向的对象 和 q 指向的对象是否是值语义相等的 1.2 示例 覆写 equals 前 public class Card { public int rank; // 数值 public String suit; // 花色 public Card(int rank, String suit) { this.rank = rank; this.suit = suit; } }Card p = new Card(1, "♠"); Card q = new Card(1, "♠"); Card o = p; p == o; // true p == q; // false p.equals(o); // true 因为如果不覆写 equals,默认的 equals 逻辑就是引用比较 p.equals(q); // false 因为如果不覆写 equals,默认的 equals 逻辑就是引用比较 覆写 equals 后 public class Card { public int rank; // 数值 public String suit; // 花色 public Card(int rank, String suit) {