Object类是Java中所有类的根类(Root Class),它位于Java类继承层次结构的最顶层。Object类具有以下特点:
-
继承关系:所有类都直接或间接地继承自Object类。如果一个类没有显式地指定它的父类,那么默认情况下该类的父类就是Object类。
-
toString()方法:Object类提供了一个toString()方法,用于返回对象的字符串表示。默认情况下,toString()方法返回的是对象的类名和哈希码的十六进制表示,但可以在子类中重写该方法,以返回更有意义的字符串表示。
-
equals()方法:Object类提供了一个equals()方法,用于比较两个对象是否相等。默认情况下,equals()方法比较的是两个对象的引用是否相等,即是否指向同一个内存地址。同样,可以在子类中重写equals()方法,以自定义对象相等的判断逻辑。
-
hashCode()方法:Object类提供了一个hashCode()方法,用于返回对象的哈希码。哈希码用于支持基于哈希表的数据结构,如HashMap和HashSet。默认情况下,hashCode()方法返回的是对象的内存地址的哈希码,但也可以在子类中重写该方法,以返回更有意义的哈希码。
-
getClass()方法:Object类提供了一个getClass()方法,用于返回对象的运行时类(Runtime Class)。运行时类是指对象在内存中实际所属的类,它提供了关于类的信息,如类的名称、父类、接口等。
-
基本方法:Object类还提供了一些基本的方法,如clone()方法用于创建对象的副本,finalize()方法用于垃圾回收前的清理操作,wait()方法和notify()方法用于线程间的协作等。
由于所有类都继承自Object类,因此Object类的特点对于所有的Java类都是适用的。通过Object类提供的方法,可以在所有的对象上执行通用的操作,如比较、哈希、转换等。