一. 针对对象值是否相等的比较
== 和 equals 的区别
当我们提到比较值的时候,大多数人都会想到 == ,因为在一般情况下,人们对于比较的概念中,数字比较的应用场景出现频率是最多的.
首先我们创建一个类,之后新建这个类的对象来进行比较验证.
class Student {
public String name;
public int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
}
==
我们通常都用 == 来比较数字的大小,那如果用他来比较对象会是什么情况,看下面一个代码.
Student student1 = new Student("小明", 95);
Student student2 = new Student("小明", 95);
if (student1 == student2) {
System.out.printf("相等");
} else {
System.out.println("不相等");
}
这段代码中我们创建了包含实例相同的两个对象,都是小明,95分.在运行之前我们也许会想它是相同的,但实则不然,结果为不相等.下面我们再提供一段相似的代码.
Student student1 = new Student("小明", 95);
Student student2 = student1;
if (student1 == student2) {
System.out.println("相等");
} else {
System.out.prin