Object类常用方法及面试题总结

关于Java常用Api的总结
1.Object
1.1概念
所有对象的顶级父类
存在于java.lang包中
Object类中的方法
object类中方法说明如下:
1 registerNatives() //私有方法
2 getClass() //返回此 Object 的运行类。
3 hashCode() //用于获取对象的哈希值。
4 equals(Object obj) //用于确认两个对象是否“相同”。
5 clone() //创建并返回此对象的一个副本。
6 toString() //返回该对象的字符串表示。
7 notify() //唤醒在此对象监视器上等待的单个线程。
8 notifyAll() //唤醒在此对象监视器上等待的所有线程。
9 wait(long timeout) //在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或 者超过指定的时间量前,导致当前线程等待。
10 wait(long timeout, int nanos) //在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
11 wait() //用于让当前线程失去操作权限,当前线程进入等待序列
12 finalize() //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

面试中易混点辨析
1.==和equals区别
==:基本类型比较值是否相同
引用类型比较内存地址是否相同
equals:引用类型:object类比较的是地址值但是其他类大都重写了equals方法比较成员变量的值是否相同
2.hashcode()和equals()的区别
hashCode()方法和equal()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致,

因为重写的equal()里一般比较全面比较复杂,这样效率就比较低,而利用hashCode()进行对比,则只要生成一个hash值进行比较就可以了,效率很高,那么hashCode()既然效率这么高为什么还要equal()呢?

因为hashCode()并不是完全可靠,有时候不同的对象他们生成的hashcode也会一样(生成hash值得公式可能存在的问题),所以hashCode()只能说是大部分时候可靠,并不是绝对可靠

发布了7 篇原创文章 · 获赞 3 · 访问量 258

猜你喜欢

转载自blog.csdn.net/qq_43614498/article/details/102882681