Object类下面的一些方法详解

在这里插入图片描述

1.Object()

​ Object类的构造方法。

2.registerNatives()

​ 为了使JVM发现本机功能,他们被一定的方式命名。例如,对于java.lang.Object.registerNatives,对应的C函数命名为Java_java_lang_Object_registerNatives。

通过使用JNI函数RegisterNatives可以命名任何你想要的C函数 。

3.clone()

​ 用来另存一个当前存在的对象。只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。

​ 引申问题:设计模式

4.getClass()

​ final方法,用于获得运行时的类型。该方法返回的是此Object对象的类对象/运行时类对象Class。效果与Object.class相同。

​ 引申问题:类加载机制、双亲委派、反射等

5.equals()

equals用来比较两个对象的内容是否相等。默认情况下(继承自Object类),equals和==是一样的,除非被覆写(override)了。  

​ 引申问题:equals与==的区别、hashmap实现原理

6.hashCode()

此方法用来返回其所在对象的物理地址(哈希码值),常会和equals方法同时重写,确保相等的两个对象拥有相等的hashCode。  

​ 引申问题:equals与==的区别、hashmap实现原理

7.toString()

​ 该方法返回该对象的字符串表示 。

8.wait()

​ 使当前线程变更为等待状态,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。

​ 引申问题:wait和sleep的区别

9.wait(long timeout)

​ 使当前线程变更为等待状态,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量。

​ 引申问题:wait和sleep的区别

10.wait(long timeout, int nanos)

​ 使当前线程变更为等待状态,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。

​ 引申问题:wait和sleep的区别

11.notify()

​ 唤醒在此对象监视器上等待的单个线程。

​ 引申问题:线程之间如何通信

12. notifyAll()

​ 唤醒在此对象监视器上等待的所有线程。

​ 引申问题:线程之间如何通信

13.finalize()

​ 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

​ 引申问题:final、finally、finalize()的区别;垃圾回收机制等

猜你喜欢

转载自blog.csdn.net/Greenarrow961224/article/details/110727343