JAVA之Object类

Posted 泥鱼生长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA之Object类相关的知识,希望对你有一定的参考价值。

一、java.lang.Object类简介

  •  Object类是所JAVA类的根父类。
  •  如果在类的声明中未使用extends关键字指明父类,则默认父类是Object类。Object类中的功能(属性、方法)就具有通用性属性。
  •  equals()/toString()/getClass()/hashCode()/clone()/finalize()/wait()/notify()/notifyAll()。
  •  Object类只声明了一个空参的构造器。

 相关面试题:final,finally,finalize的区别?

二、== 和 equals的区别

  1.  回顾==的使用
    •  ==是运算符
    • 可以使用在基本数据类型变量和引用数据类型变量中
      • 如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等(涉及自动类型提升)
      • 如果比较的是引用数据类型变量:比较两个对象的地址值是否相同(即两个引用是否指向同一个对象实体)
    • 补充:使用时,必须保证符号左右两边的变量类型一致

 2. equals()方法的使用:

    •  一个方法,不是运算符,只能适用于引用数据类型。
    •  Object类中定义的equals()的方法:作用和 ==相同,比较两个对象的地址值是否相同
    •  像Date、String、File、包装类等都对equals方法进行了重写,重写之后比较的不再是引用的地址,而是比较两个对象的实体内容是否相同。
    •  通常情况下,自定义的类如果使用equals方法的话,通常是比较两个对象的实体内容是否相同。就需要对equals方法进行重写。
    •  重写equals方法的原则:
  1. 对称性
  2. 自反性
  3. 传递性
  4. 一致性
  5. 任何情况下,x.equals(null)永远返回false

三、toString方法的使用

  1.  当我们输出一个对象的引用时,实际上就是调用当前对象的toString方法。
  2.  Object类中toString方法的定义:

 public String toString() {

      return getClass().getName() + "@" + Integer.toHexString(hashCode());

  }

3. 像String、Date、File、包装类等都重写了Object类中的toString()方法。使得在调用对象的toString方法时,返回实体内容信息。

4. 自定义类也可以重写toString方法,当调用此方法时,返回对象的实体内容。

以上是关于JAVA之Object类的主要内容,如果未能解决你的问题,请参考以下文章

java基础之Object类

黑马java之object类(tostring那个方法)补发

Java之Object类详解

Java之面向对象Object类

java--面对对象之Object类

java基础之Object