package com.inmind.object01; /* boolean equals(Object obj) 判断2个对象的内容是否相同 在实际开发中,地址值对于我们而言没有太大的作用,比较关心的数据内容,经常将内容相同的 2个对象,看作是同一个,引用数据类型比较时,使用equals比较内容!!!! 对于引用数据类型: ==:比较的是地址值 equals:比较的是内容 注意:每个引用数据类型都默认直接或者间接继承Object,也就是说每个引用类型都有它的equals方法 Object类底层equals源码: public boolean equals(Object obj) { return (this == obj); } 如果父类的内容比较功能,不符合子类需求,那就重写equals方法即可 总结:每个对象的equals方法继承自Object类,默认使用==比较地址值,这个对于我们而言,不满足咱们需求 因此我们会在每个类中重写equals方法,不用手动写,直接alt+insert自动生成 */ public class Demo02 { public static void main(String[] args) { String str1 = "abc"; String str2 = new String("abc"); System.out.println(str1 == str2);//false,比较的是地址 System.out.println(str1.equals(str2));//true,比较的是内容 System.out.println("-------------------------------"); //一般在开发中,自定义类的对象也会进行比较 Person p1 = new Person("张三", 18); Person p2 = new Person("张三", 18); System.out.println(p1 == p2);//false //false,希望是true,但是底层源码是==比较地址,false System.out.println(p1.equals(p2));//true } }