Object类是一个特殊的类,是所有类的父类。它主要提供一下11个方法:
1 public final native Class<?> getClass() //natice方法,用于返回当前运行时对象的class对象,使用了final关键字修饰,不允许子类重写 2 3 public native int hashCode() //natice方法,用于返回对象的哈希码,主要使用在哈希表中,比如JDK中的Hash Map 4 5 public boolean equals(Object obj) //用于比较2个对象的内存地址是否相等,String类重写了该方法,比较字符串是否相等 6 7 public native object clone() throws CloneNotSupportedException //native 方法,用于创建并返回当前对象的一份拷贝,一般情况下,对于任何对象X,表达式x.clone() != x为true,x.clone().getClass() == x.getClass()为true。Object本身没有实现Cloneable接口,所以不重写clone方法,并且进行调用的话会发生CloneNotsupportedException异常 8 9 public String toString() //返回类的名字@实例的哈希码的16进制的字符串,建议object所有的子类都重写这个方法 10 11 public final native void notify() //native方法,不能重写,唤醒一个在次对象监视器上等待的线程(监视器就相当于锁的概念),如果有多个线程在等待只会唤醒一个 12 13 public final native void notifyAll() //native方法,不能重写,跟notify一样,不过时唤醒此对象监视器上等待的所有线程 14 15 public final native void wait(long timeout) throws InterruptedException // native 方法,不能重新写,暂停线程的执行,sleep方法没有释放锁,wait方法释放锁。timeout是等待时间 16 17 public final void wait(long timeout, int nanos) throws InterruptedException //多了额外的nanos参数,在timeout基础上加上nanos 18 19 public final void wait() throws InterruptedException // 一直等待,没有超时 20 21 protected void finalize() throws Throwable{} // 实例被垃圾回收器回收时候触发的
原文地址:https://www.cnblogs.com/codingLiu/p/12685367.html
时间: 2024-10-08 11:54:57