Object类中的方法及作用详解

1,794 阅读2分钟

一、引言

Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法。Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类。

二、Object方法详解

通过阅读源码可知Object中含有:Object()、getClass()、hashCode()、equals()、clone()、toString()、notify()、notifyAll()、wait(long)、wait(long,int)、wait()、finalize()共十二个方法。

对这些方法功能进行简单的描述:

1. Object():默认构造方法
 public Object() {
        throw new RuntimeException("Stub!");
    }
2. clone():创建并返回此对象的一个副本
   @RecentlyNonNull
    protected Object clone() throws CloneNotSupportedException {
        throw new RuntimeException("Stub!");
    }
3. equals():指示某个其他对象是否与此对象相等
 public boolean equals(@Nullable Object obj) {
        throw new RuntimeException("Stub!");
    }
4. finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
    protected void finalize() throws Throwable {
        throw new RuntimeException("Stub!");
    }
5. getClass():返回一个对象的运行时类
    @NonNull
    public final Class<?> getClass() {
        throw new RuntimeException("Stub!");
    }
6. hashCode():返回该对象的哈希值
    public int hashCode() {
        throw new RuntimeException("Stub!");
    }
7. notify():唤醒此对象监视器上等待的单个线程
    public final native void notify();
8. notifyAll():唤醒此对象监视器上等待的所有线程
    public final native void notifyAll();
9. toString():返回该对象的字符串表示
    @NonNull
    public String toString() {
        throw new RuntimeException("Stub!");
    }
10. wait():导致当前的线程等待,直到其它线程调用此对象的notify()或notifyAll()
    public final void wait() throws InterruptedException {
        throw new RuntimeException("Stub!");
    }
11. wait(long timeout):导致当前的线程等待调用此对象的notify()或notifyAll()
    public final void wait(long timeout) throws InterruptedException {
        throw new RuntimeException("Stub!");
    }
12. wait(long timeout, int nanos):导致当前的线程等待,直到其他线程调用此对象的notify()或notifyAll(),或其他某个线程中断当前线程,或者已超过某个实际时间量
    public final native void wait(long var1, int var3) throws InterruptedException;