Object类学习笔记

基于JDK1.8

Object类是所有类的超类。它有这些方法:

1.getClass()

          返回运行时对象的Class对象,该方法被修饰为final native。

2. hashcode()

          返回对象的哈希值,该方法是native方法。(HashMap解决哈希冲突使用链地址法)

3.equals()

           默认调用==,即比较地址是否相等,可以重写。

           特别说明:String类中覆盖了equals方法,同时也覆盖了hashCode方法。从而保证了两个字符串A和B,即使其在内存中的地址不一样,只要其字符串内容一样,则A.equals(B)返回true,且A.hashCode() = B.hashCode。

4.clone()

            创建并返回对象的一个拷贝,但是Object被没有具体实现这个方法,所以若想调用它,只能通过子类重写之后再调用。

5.finalize()

             在垃圾回收之前会调用一次这个对象的finalize方法,且任何一个对象的这个方法只会被调用一次,在这个方法内可以使对象获得引用从而活下去,但是官方不建议这样去拯救对象,因为这样开销很大。

5.wait()、notify()、notifyAll() 

              wait()表示该锁被释放,当前线程会进入等待队列,notify()是唤醒等待队列中的一个线程,notifyAll()则会唤起等待队列的所有线程让其争夺这个锁。

猜你喜欢

转载自blog.csdn.net/weixin_38785199/article/details/82942199
今日推荐