一、== :运算符
1、可以使用在基本数据类型变量和引用数据类型变量中。
2、如何比较的基本数据类型变量:比较两个变量的数据是否相等。(不一定类型要相同)
如果比较的是引用数据类型变量:比较两个对象的地址值是否相同,即两个引用对象是否指向同一个实体。
equlas(): 方法
1.是一个方法,而非运算符。
2.只能适用于引用数据类型。
结论: 基本数据类型的使用==比较,引用数据类型使用equlas()比较。
equals () 括号内放入要比较的引用值得变量。
- 编译器中可以 以自动生成equals 方法。
- 像 String、date、File、包装类等都重写了Object 类中的equals()方法,比较的不是两个引用的地址是否相同,而是比较两个对象的“实体内容是否相同”。
二、栗子:
package Com.bigDataWork_exer;
import com.sun.org.apache.xpath.internal.operations.Or;
import java.util.Objects;
public class OrderTest {
public static void main(String[] args) {
Order o1= new Order(1001,“AA”);
Order o2 = new Order(1002,“BB”);
System.out.println(o1.equals(o2)); // false
Order o3 = new Order(1002,“BB”);
System.out.println(o2.equals(o3));
}
}
class Order{
private int orderId;
private String orderName;
public Order() {
}
public Order(int orderId, String orderName) {
this.orderId = orderId;
this.orderName = orderName;
}
public int getOrderId() {
return orderId;
}
public String getOrderName() {
return orderName;
}
public void setOrderId(int orderId) {
this.orderId = orderId;
}
public void setOrderName(String orderName) {
this.orderName = orderName;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Order order = (Order) o;
return orderId == order.orderId &&
Objects.equals(orderName, order.orderName);
}
}