在Java中,Object类是所有类的根类。这意味着每个Java类都直接或间接地继承自Object类。Object类中定义了一些通用的方法,这些方法可以被所有的Java对象使用。
Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类。
Object类中的一些方法与特性
1. equals(Object obj)
方法
equals(Object obj)
方法用于比较两个对象是否相等。- 默认情况下,
equals()
方法比较的是对象的引用,即判断两个对象是否指向同一内存地址。 - 通常情况下,需要在自定义类中重写
equals()
方法,以便比较对象的内容而不是引用。
2. hashCode()
方法
hashCode()
方法返回对象的哈希码值。- 哈希码值是根据对象的内存地址计算的一个整数,它用于在哈希表等数据结构中快速定位对象。
- 如果重写了
equals()
方法,通常也需要重写hashCode()
方法以保持一致性。
3. toString()
方法
toString()
方法返回对象的字符串表示形式。- 默认情况下,
toString()
方法返回对象的类名和哈希值的组合,例如:ClassName@hashCode
。 - 通常需要在自定义类中重写
toString()
方法,以便返回对象的有意义的字符串表示形式。
4. getClass()
方法
getClass()
方法返回对象的运行时类(Runtime Class)。- 运行时类是对象所属的类的实例,在编译时可能并不知道。
- 通常不需要重写
getClass()
方法。
5. wait()
, notify()
, notifyAll()
方法
- 这些方法用于实现线程之间的通信和同步,通常在多线程编程中使用。
- 这些方法必须在同步块中调用,并且对象必须是锁对象(即被
synchronized
关键字保护的对象)。