import java.util.Objects;
public class Test {
public static void main(String[] args) {
System.out.println("1 == 1的结果为:"+(1 == 1));
System.out.println("\"1\".equals(\"1\")的结果为:"+"1".equals("1"));
System.out.println("\"1\".equals(1)的结果为:"+"1".equals(1));
People p1 = new People();
People p2 = new People();
p1.setName("aa");
p2.setName("aa");
String p1Name = p1.getName();
String p2Name = p2.getName();
System.out.println("p1 == p2的结果为:"+(p1 == p2));//false
System.out.println("p1.equals(p2)的结果为:"+p1.equals(p2));//false
System.out.println("p1Name.equals(p2Name)的结果为:"+p1Name.equals(p2Name));//true
System.out.println("p1Name == p2Name的结果为:"+(p1Name == p2Name));//true
System.out.println("==================");
test();
}
public static void test(){
Integer integer1 = 1;
Integer integer2 = 1;
int i = 1;
System.out.println("integer1 == i的结果为:"+(integer1 == i));
System.out.println("integer1 == integer2的结果为:"+(integer1 == integer2));
System.out.println("integer2 == i的结果为:"+(integer2 == i));
System.out.println("integer1.equals(i)的结果为:"+integer1.equals(i));
System.out.println("integer1.equals(integer2)的结果为:"+integer1.equals(integer2));
System.out.println("integer2.equals(i)的结果为:"+integer2.equals(i));
}
}
class People{
private Integer age;
private String name;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
People people = (People) o;
return Objects.equals(age, people.age) &&
Objects.equals(name, people.name);
}
@Override
public int hashCode() {
return Objects.hash(age, name);
}
}
People类重写前结果:
People类重写后结果:
int和Integer的比较: