Object类是所有类、数组、枚举类的父类,也就是说,java允许把任何类型的对象赋给Object类型的变量。因为所有的Java类都默认继承Object类,所以任何Java对象都可以调用Object类中的方法。
常用方法
- boolean equals(Object obj):判断指定对象与该对象是否相等。这里相等的标准是两个对象是同一个对象(==),因此这个方法实际上没什么用处,当我们创建类之后需要比较的话,一般都是需要重写这个方法。
- protected void finalize():当系统中没有引用变量引用到该对象时,垃圾回收器调用此方法来清理对象的资源。
- Class<?> getClass():返回该对象的运行时类。
- int hashCode():返回对象的hashCode值。在默认情况下,Object类的hashCode()方法根据该对象的地址来计算。但是有需要的时候,可以重写hashCode()方法,根据其他内容来返回hashCode值,例如String类。
- String toString():返回该对象的字符串表示。Object类的toString()方法返回“运行时类型@十六进制hashCode值”格式的字符串。很多类都重写了toString()方法,用于返回可以表述该对象信息的字符串。
除此之外,Object类还提供了wait()、notify()、notifyAll()等方法,用来控制线程的暂停和运行。
注:有时候为了在将对象装入集合时进行去重,比如实现HashSet集合去重,在创建对象类时,需要在类中重写equals()、hashCode()方法。如果想要在println(对象)时输出的不是默认的“运行时类型@十六进制hashCode值”格式字符串,则可以重写toString方法,自定义返回的值。