基于JDK1.8
Object类是所有类的超类。它有这些方法:
1.getClass()
返回运行时对象的Class对象,该方法被修饰为final native。
2. hashcode()
返回对象的哈希值,该方法是native方法。(HashMap解决哈希冲突使用链地址法)
3.equals()
默认调用==,即比较地址是否相等,可以重写。
特别说明:String类中覆盖了equals方法,同时也覆盖了hashCode方法。从而保证了两个字符串A和B,即使其在内存中的地址不一样,只要其字符串内容一样,则A.equals(B)返回true,且A.hashCode() = B.hashCode。
4.clone()
创建并返回对象的一个拷贝,但是Object被没有具体实现这个方法,所以若想调用它,只能通过子类重写之后再调用。
5.finalize()
在垃圾回收之前会调用一次这个对象的finalize方法,且任何一个对象的这个方法只会被调用一次,在这个方法内可以使对象获得引用从而活下去,但是官方不建议这样去拯救对象,因为这样开销很大。
5.wait()、notify()、notifyAll()
wait()表示该锁被释放,当前线程会进入等待队列,notify()是唤醒等待队列中的一个线程,notifyAll()则会唤起等待队列的所有线程让其争夺这个锁。