zoukankan      html  css  js  c++  java
  • Java之Object类

    引言

      Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。Object类是Java中唯一没有父类的类。

      其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。

    Object类中的方法

    equals方法

      这个方法返回Bool型,用于判断两个引用是否指向同一个对象,其等价于运算符“==”,只有当继承Object的类重写equals方法之后,才可以说equals方法与==不同。

      equals方法具有的特点: 

      自反性(reflexive):任何非空引用x,x.equals(x)返回为true。

      对称性(symmetric):任何非空引用x和y,x.equals(y)返回true当且仅当y.equals(x)返回true。

      传递性(transitive):任何非空引用x和y,如果x.equals(y)返回true,并且y.equals(z)返回true,那么x.equals(z)返回true。

      一致性(consistent):两个非空引用x和y,x.equals(y)的多次调用应该保持一致的结果,(前提条件是在多次比较之间没有修改x和y用于比较的相关信息)。

      约定:对于任何非空引用x,x.equals(null)应该返回为false。

    hashCode方法

      这个方法返回一个整型值,表示为某个对象的地址。

      hashCode的一般性契约:

      1. 当equals比较的信息没有被修改,那么同一个对象多次调用hashCode方法返回同一个值

      2. 如果equals()判断两个对象相等,那么它们的hashCode()方法应该返回同样的值。

      3. 并没有强制要求如果equals()判断两个对象不相等,那么它们的hashCode()方法就应该返回不同的值。即,两个对象用equals()方法比较返回false,它们的hashCode可以相同也可以不同。但是,应该意识到,为两个不相等的对象产生两个不同的hashCode可以改善哈希表的性能。

    toString方法

      这个方法返回该对象的字符串表示。当打印引用,如调用System.out.println()时,会自动调用对象的toString()方法。

    wait/notify/notifyAll方法

      1. wait方法:当前线程等待,直到在其他线程上调notify/notifyAll方法。调用后,当前线程立即阻塞,直至被唤醒;

      2. notify/notifyAll:唤醒在此对象监视器上等待的单个线程/所有线程。调用后,所在线程不会释放所持有的锁,直到所在同步代码中代码执行完毕,才释放锁。

    finalize方法

      JVM准备对此对象所占用的内存空间进行垃圾回收前,将被调用。

  • 相关阅读:
    升级linux bash
    vim关键字自动补全
    linux bash shell之变量替换::=句法、=句法、:句法、句法、=?句法、?句法、:+句法、+句法
    使用Bash编写Linux Shell脚本7.复合命令
    使用Bash编写Linux Shell脚本5.变量
    使用Bash编写Linux Shell脚本8.调试和版本控制
    Perl之单引号\双引号的字符串直接量
    linux bash shell 中的单引号和双引号
    使用Bash编写Linux Shell脚本6.表达式
    Vim的行号、语法显示等设置,即.vimrc文件的配置
  • 原文地址:https://www.cnblogs.com/huanghzm/p/11023215.html
Copyright © 2011-2022 走看看