Java学习之Object类的全面解析

1,object类概述

Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。 在编码时,自动导入,而且在lang包中。

方法如下:


大致常用的方法有:equals方法,finalize,getClass,hashCode,notify等,toString,wait等

2,getClass()方法

改方法不能被重写,返回的时运行时的类型


3,hashCode()方法

 1、功能

    返回对象的哈希值(以整数形式返回对象的一个特殊值),
    提高集合中查找元素相等的效率!

2、特点
    对象的哈希值 约等于 对象的地址号

    
3、推论
    如果哈希值不一样,则两个对象肯定不一样!

4,finalize方法

 自动垃圾回收机制

 原理:当应用已启动,实际上相当于开起了 主线程main和垃圾回收器线程
 垃圾回收器将默默检测是否有需要回收的对象,一旦有了,则需要回收该对象以释放空间供其他有用对象使用,该对象被回收时同时调用finalize方法
 
     1、回收哪些对象?
     答:无用对象(没有任何引用指向的对象)
     
     2、回收的时机?
     答:不确定的
     
     3、如何加速垃圾回收器的回收?
     
     答:唤醒垃圾回收器
     System.gc();
     
     4、finalize方法什么时候被调用?
     只要被回收,肯定被调用

5,toString方法☆(很重要)

 1、功能

    返回对象的字符串形式。默认返回的是:全类名+@+哈希值的十六进制
    public String toString(){

        return getClass().getName()+"@"+Integer.toHexString(hashCode());
    }

    子类往往重写该方法

2、如何重写toString方法?

    public String toString(){
        return 属性信息;

    }
3、好处:

    打印方法和拼接字符串时,会自动调用对象的toString方法,提高代码的简洁性!

扫描二维码关注公众号,回复: 2540144 查看本文章

6,equals方法☆(很重要)

  ==和equals的对比

 
  == 可以判断基本类型或引用类型,不管判断什么类型的元素,都要求 左右两边的类型一致或兼容,否则编译报错
          如果判断的是基本类型,则判断的是值是否相等。示例:100==‘d’ true      1.0==1 true
          如果判断的是引用类型,则判断的是地址是否相等。示例:person1==person2    string1 == string2
  
  
 equals 只能判断引用类型,可以判断任何引用类型,编译不会报错
          Object类的equals:判断的就是地址是否相等!往往子类需要重写equals方法,实现判断内容是否相等。比如:String、Integer类等都重写了equals方法

 *## 如何重写equals方法 ##*

        public boolean equals(Object obj){//this:person1  obj:person4
        //步骤1:两个对象的地址一样(提高效率)
        if(this==obj)
            return true;
        //步骤2:判断对象的类型
        if(!(obj instanceof Person)){//如果传入的obj不是Person类型,则直接返回
            return false;
        }
        //步骤3:对象的向下转型
        Person p = (Person) obj;//向下转型
        //步骤4:判断内容是否相等

        return this.name.equals(p.name)&&this.age==p.age;


猜你喜欢

转载自blog.csdn.net/student__software/article/details/79671787
今日推荐