Object 类是一个特殊的类,是所有类的父类。它主要提供以下内容 11 个方法:
// native 该方法用于返回当前运行时的对象 Class 对象,使用 final 关键字修改,不允许子类重写。public final native Class<?> getClass()// native 该方法主要用于返回对象的哈希码,如哈希表 JDK Hashmap在中间。public native int hashCode()// 用于比较 2 对象的内存地址是否相等,String 重写该方法,以比较字符串的值是否相等。public boolean equals(Object obj)// native 该方法用于创建和返回当前对象的副本。protected native Object clone() throws CloneNotSupportedException// 哈希码返回类名称实例 16 进制字符串。建议 Object 所有子类都重写这种方法。public String toString()// native 方法,不能重写。唤醒在这个对象监视器上等待的线程(监视器相当于锁定的概念)。若有多个线程在等待,只能随意唤醒一个。public final native void notify()// native 方法,不能重写。跟 notify 同样,唯一的区别是唤醒所有在这个对象监视器上等待的线程,而不是一个线程。public final native void notifyAll()// native方法,不能重写。执行暂停线程。注意:sleep 该方法没有释放锁,而是 wait 释放锁的方法 ,timeout 等待时间。public final native void wait(long timeout) throws InterruptedException // 除毫秒外,参数还包括纳秒,因此它可以提供更高的等待时间精度。public final void wait(long timeout, int nanos) throws InterruptedException // 就像之前的两种wait方法一样,只是这种方法一直在等待,publicic没有超时的概念 final void wait() throws InterruptedException // 垃圾回收器回收时触发的实例操作protected void finalize() throws Throwable { }
问:什么是native方法?native 是一个 Java 关键字,用于修改方法。这意味着这种方法是一种本地方法,即它的实现不是用来的 Java 语言是用其他语言编写的(通常是 C 或 C++)并将其编译成与底层操作系统相关的机器语言。