Object类使所有类的父类,常见的9个:
1、getClass()//native方法,用于返回当前运行时对象的Class对象
public final native Class<?> getClass()
用final修饰,所以不允许子类重写。
2、 hashCode()//native方法,用于返回对象的哈希码主要使用在哈希表中,比如JDK中的 HashMap。 public native int hashCode()
3、equals()方法,用于比较两个对象的内存地址是否相等,String类对该方法进行了重写用户 比较字符串的值是否相等。public boolean equals(Object obj)
4.clone()方法,//naitive方法,用于创建并返回 当前对象的一份拷贝。 protected native Object clone() throws CloneNotSupportedException/
一般情况下,对于任何对象 x,表达式 x.clone() != x 为true,x.clone().getClass() == x.getClass() 为true。Object本身没有实现Cloneable接口,所以不重写clone方法并且进行调用的话会发生 CloneNotSupportedException异常。
5、toString()方法,返回类的名字 实例的哈希码的16进制的字符串。建议Object所有的子类都重写这个方 法。public String toString()
6.notify()方法,native方法,并且不能重写。唤醒一个在此对象监视器上等待的线程(监视 器相当于就是锁的概念)。如果有多个线程在等待只会任意唤醒一个。public final native void notify()
7、notifyAll()方法,native方法,并且不能重写。跟notify一样,唯一的区别就是会唤醒 在此对象监视器上等待的所有线程,而不是一个线程。public final native void notifyAll()
8、wait()方法,native方法,并且不能 重写。暂停线程的执行。注意:sleep方法没有释放锁,而wait方法释放了锁 。timeout是等待时间。public final native void wait(long timeout) throws InterruptedException
9、finalize()方法 //实例被垃圾回收器回收的时候触发的操作。protected void finalize() throws Throwable { }