package course.api; /** * @author WanJl * @version 1.0 * @title Demo01 * @description Object类 * @create 2026/7/28 */ public class Demo01 { public static void main(String[] args) { /* java中所有类的父类 就是java.lang.Object类 常用的方法: 1、equals() 比较两个对象是否相同,一般我们会重写equals方法,让equals方法按照我们的【要求和规则】进行比较。 Object类中比较的时候 ==是否相等 也就是地址值(哈希码值)是否相等 2、hashCode():返回对象的哈希码值,Object返回的都是该对象在内存中的地址 3、toString(): 把对象内容按照格式转为字符串, Object默认的是转换为 : 包名.类名 @ 哈希码值的十六进制 一般我们也会重写toString方法,方便我们输出对象的属性变量。 在重写equals的时候一般都会一起重写hashCode()方法。 如果equals()比较不想等,那么两个对象的hashCode()方法返回的整数值也不要相等。 所以为了符合我们开发的业务需求,一般都会为实体类(可以代表一个业务实体的类)重写equals()和 hashCode()方法 我们使用IDEA开发,不需要自己手动重写上面的三个方法,只需要使用快捷键生成即可。 当然,你要想自己写也可以。 */ Person p=new Person("张三",25); Person p1=new Person("李四",12); System.out.println(p==p1); //false System.out.println(p.equals(p1));//false 当重写了equals方法后,比较就返回true String s1=new String("张三"); String s2=new String("张三"); System.out.println(s1==s2); //false System.out.println(s1.equals(s2)); // true System.out.println(p.hashCode()); System.out.println(p1.hashCode()); Person p2=new Person(); System.out.println(p2.hashCode()); System.out.println(p2); System.out.println(p); System.out.println(p1); } }