• Object之总结(一)


    一、Object类中一共有12个方法。一个私有方法,两个保护方法,9个公共方法。另外还有一个静态代码块。

    1、registerNatives方法。私有静态本地无参数无返回值。

     

    2、finalize方法。保护方法。无参数无返回值。

       该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。

     

    3、clone方法。保护方法。本地方法,无参数Object类型返回值。

       实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递。

     

    4、equals方法。Object参数boolean返回值。

       equals()通常用来进行比较,在Object类中,它进行了引用的比较,只有引用相同时会返回true。但是这样并不是我们想要的比较的情况,比如字符串的比较是比较每个字符是否相同。那么在String类中就会对equals()方法进行重写。都知道java中比较字符串是否相等应该用equals();而==则是比较的值,也就是引用;那么为什么是这样的呢?我今天看了下equals的实现方法,发现字符串的比较,是通过每一个字符进行比较,如果都相等,则返回true;而源码里面Object类型的equals方法却是直接用==来代替的,也就是说相当于直接比较引用了,这也就是为什么我们有时候要重写equals方法了。

    ###################################################### 

    下面附上Jdk中String类型的equals方法源码。

    5、hashCode方法。本地方法。返回整型。

       一个对象的签名,但是不同对象该签名可能会重复,只是一般不会。该方法用来返回其所在对象的物理地址(哈希码值),常会和equals方法同时重写,确保相等的两个对象拥有相等的.hashCode

     

    6、getClass方法。不可覆写的本地方法。

     

    7、toString方法。全限定性类名+“@”+hashCode值的十六进制表示。

     

    8、wait方法。不可覆写方法。本质是调用wait( long timeout)方法。

       wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。

     

    9、wait(long timeout)。不可覆写的本地方法。

       wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。

    调用该方法后当前线程进入睡眠状态,直到以下事件发生。

    (1)其他线程调用了该对象的notify方法。

    (2)其他线程调用了该对象的notifyAll方法。

    (3)其他线程调用了interrupt中断该线程。

    (4)时间间隔到了。

     

    10、wait(long timeout, int nanos)方法。不可覆写。

     

    11、notify方法。不可覆写的本地方法。

       该方法唤醒在该对象上等待的某个线程。

     

    12、notifyAll方法。不可覆写的本地方法。

       该方法唤醒在该对象上等待的所有线程。

     

    二、总结。

    1、

    2、

    3、

    三、

     

  • 相关阅读:
    个人作业-Alpha项目测试
    第三次作业-结对编程
    第二次作业
    第一次阅读作业
    canal同步mysql数据至es5.5.0
    工作一周年小结
    Java集合操作 遍历list并转map
    网易秋招校招编程题
    堆外内存总结
    网易秋招内推编程题题解
  • 原文地址:https://www.cnblogs.com/igoodful/p/9482365.html
Copyright © 2020-2023  润新知