Object类

Object类是所有类的直接或间接父类,包含如hashCode()、toString()、equals()和finalize()等基础方法。hashCode()返回对象的哈希码,toString()提供对象的字符串表示,equals()比较对象内容,而finalize()在对象回收前提供最后处理机会。
摘要由CSDN通过智能技术生成

Object类

  • 超类、基类、所有类的直接或间接父类,位于继承树的最顶层

  • 任何类,如没有书写extends显示继承某个类,都默认直接继承Object类,否则为间接继承

  • Object类中所定义的方法,是所有对象都具备的方法

  • Object类型可以存储任何对象

    • 作为参数,可接受任何对象

    • 作为返回值,可返回任何对象

getClass()方法

  • public final Class<?> getClass(){}

  • 返回引用中存储的实际对象类型

  • 应用:通常用于判断两个引用中世界存储对象类型是否一致

  • Student s1=new Student(24,"aaa");
    Student s2 =new Student(20,"bbb");
    //判断s1和s2是不是同一个类型 getClass
    Class class1=s1.getClass();
    Class class2=s2.getClass();
    if(class1==class2){
        System.out.println("s1和s2属于同一个类型");
    }else{
        System.out.println("s1和s2不属于同一个类型");
    }
    //结果:属于同一个类型
    

hashCode()方法

  • public int hashCode( ){ }

  • 返回该对象的哈希码值

  • 哈希值根据***对象的地址或==字符串==或数字***使用hash算法计算出来的int类型的数值

  • 一般情况下相同对象返回相同哈希码

  • Student student1 = new Student();
    Student student2 = new Student();
    System.out.println(student1.hashCode());//460141958
    System.out.println(student2.hashCode());//11631578814
    Student student3=student1;
    System.out.println(student3.hashCode());//460141958
    

toString()方法

  • public String toString( ){ }

  • 返回该对象的字符串表示(表现形式)

  • 可以根据程序需求覆盖该方法,如:展示对象各个属性

  • Student student1 = new Student();
    Student student2 = new Student();
    System.out.println(student1.toString());//com.method.getclass.Student@1b6d3586
    System.out.println(student2.toString());//com.method.getclass.Student@4554617c
    
    //toString方法重写
    public String toString(){
        return name+":"+age;
    }
    

equals()方法

  • public boolean equals(Object obj){ }

  • 默认实现为(thisobj)比较两个对象地址是否相同==

  • 可进行覆盖,比较两个对象的内容是否相同

  • public boolean equals(Object obj){
        return (this==obj);
    }//判断当前对象和传入对象是否为同一对象
    
    Student student1 = new Student();
    Student student2 = new Student();
    System.out.println(student1.equals(student2));//false
    
  • equals()方法覆盖步骤

    • 比较两个引用是否指向一个对象

    • 判断obj是否为null

    • 判断两个引用指向的世界对象类型是否一致

    • 强制类型转换

    • 依次比较各个属性值是否相同

    • public boolean equals(Object obj) {
          //1.判断两个对象是否是同一个引用
          if(this==obj){
              return true;
          }
          //2.判断obj是否为空
          if(obj==null){
              return false;
          }
          //3.是否为同一个类型型
          if(obj instanceof Student){
              //4.强制类型转换
              Student s=(Student)obj;
              //5.比较属性
              if(this.name.equals(s.getName())&&this.age==s.getAge() ){
                  return true;
              }
          }
          return false;
      }
      

finalize()方法

  • 对象被判定为垃圾对象时,由JVM自动调用此方法,用以表记垃圾对象,进入回收队列

  • 垃圾对象:没有有效引用指向此对象时,为垃圾对象

  • 垃圾回收:由GC销毁垃圾对象,释放数据控件

  • 自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象

  • 手动回收记住:使用System.gc();通知JVM执行垃圾回收

  • Student s1=new Student(22,"aaa");
    Student s2=new Student(22,"bbb");
    new Student(22,"ccc");
    new Student(22,"ddd");
    new Student(22,"eee");
    //手动回收垃圾
    System.gc();
    System.out.println("回收垃圾");
    /*
    回收垃圾
    ccc对象被回收了
    eee对象被回收了
    ddd对象被回收了
    */
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值