Object中的方法详解
Java 语言是一种单根继承结构语言,也就是说,Java 中所有的类都有一个共同的祖先,这个祖先就是 Object 类。则子类会继承所有 Object 类中的 public 方法。
一、所有方法如下图所示
二、 方法详解
- registerNatives()
这是一个native方法,说明这个方法的实现不是在java中,而是由C/C++实现,并编译成.dll文件,由java调用。registerNatives主要是将C/C++的方法映射到java中的native方法,实现方法命名的解耦。了解即可,知道是注册,细节暂时不研究。 - clone方法
clone方法是native方法,native方法的效率远高于非native方法,因此还是使用clone方法去做对象的拷贝而不是使用new的方法,copy。此方法被protected修饰。这就意味着想要使用,必须继承它(废话,默认都是继承的)。然后重载它,如果想要使得其他类能使用这个类,需要设置成public。返回值是一个Object对象,所以要强制转换才行。
保护方法,实现对象的浅复制,只有实现了 Cloneable 接口才可以调用该方法,否则抛出 CloneNotSupportedException 异常。 - getClass 方法
final 方法,获得运行时类的类型。 - toString 方法
返回一个 String 对象,用来标识自己。该方法用得比较多,一般子类都有覆盖。 - finalize 方法
该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。 - equals 方法
该方法是非常重要的一个方法。一般 equals 和 == 是不一样的,但是在 Object 中两者是一样的。子类一般都要重写这个方法。 - hashCode 方法
该方法用于哈希查找,重写了 equals 方法一般都要重写 hashCode 方法。这个方法在一些具有哈希功能的 Collection 中用到。 - wait 方法
wait 方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait() 方法一直等待,直到获得锁或者被中断。wait(long timeout) 设定一个超时间隔,如果在规定时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
(1)其他线程调用了该对象的 notify 方法。
(2)其他线程调用了该对象的 notifyAll 方法。
(3)其他线程调用了 interrupt 中断该线程。
(4)时间间隔到了。
此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException 异常。 - notify 方法
该方法唤醒在该对象上等待的某个线程。 - notifyAll 方法
该方法唤醒在该对象上等待的所有线程。
》》》博主长期更新学习心得,推荐点赞关注!!!
》》》若有错误之处,请在评论区留言,谢谢!!!