Java的Object类

1. 介绍

  • Object类是所有Java类的根父类;
  • 类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类;
  • Object类中只声明了一些具有通用性的方法(equals、toString、hashCode、clone、finalize等),没有声明属性;
  • 只提供了无参构造器;
    Java的Object类_第1张图片
  • 面试题:final、finally、finalize区别?

2. equals方法

2.1 比较运算符==

  • 面试题:==和equals区别?
  • ==可以应用于基本数据类型变量和引用数据类型变量中,用于比较二者是否相同;
  • 对于基本数据类型,==比较的是二者数值是否相等;对于引用数据类型,==比较的是两个对象的地址值是否相同,即两个引用是否指向同一个对象实体;
  • ==进行比较时,符号两边的数据类型必须兼容(可自动转换的基本数据类型除外),否则编译出错

2.2 equals方法

  • 只适用于引用数据类型,基本数据类型可通过对应包装类使用equals方法;
  • Object类中定义的equals方法,本质上执行结果和==操作一致,即比较的是两个对象的地址值是否相等;
    Java的Object类_第2张图片
  • Java提供的某些类重写了Object类的equals方法,此时比较的是二者“实体内容”是否相等,比如String、Date、File、包装类等;
  • 自定义使用equals()时,可以重写,用于比较两个对象的“内容”是否都相等,如果没有重写默认调用Object类的equals方法;
  • 重写equals方法基本原则:比较两个对象的“内容”是否都相等;
    Java的Object类_第3张图片

3. toString方法

  • 使用System.out.println(xxxx);输出某对象的引用时,实质调用的是该对象的toString方法;

  • Object类声明的toString方法,以类名@哈希值返回该对象的信息:
    在这里插入图片描述

  • Java提供的某些类重写了Object类的toString方法,此时返回该对象的“实体内容”,比如String、Date、File、包装类等;

  • 自定义类可以重写toString方法,如果没有重写默认调用Object类的toString方法;

  • 在进行String与其它类型数据的连接操作时,自动调用toString()方法;

  • 基本类型数据转换为String类型时,调用了对应包装类的toString()方法;

你可能感兴趣的:(Java开发,java,jvm,面试)