Object类中常见的方法总结

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{} // 实例被垃圾回收器回收时候触发的

猜你喜欢

转载自www.cnblogs.com/codingLiu/p/12685367.html