Object类

Java中的Object类

一、概念

  1. Object类是所有类的父类/基类/超类,所有Java类都直接或者间接继承了这个类
  2. 特点:
    1. Object类的引用中可以存储任何类型的对象 Object o = new …
    2. Object类中的方法被所有类默认继承

二、Object类中的方法

  1. getClass():
    1. 返回值:返回该对象运行时的实际类型
    2. 作用:判断对象的实际类型
  2. hashCode():
    1. 返回值:返回一个十进制的整数值(int类型)
    2. 作用:提高使用到hashCode的集合的效率
  3. equals():
    1. 返回值:返回一个布尔值
    2. 作用:对比两个对象的内容是否相同
    3. 注意:
      1. Object类默认的equals方法对比的是两个对象的地址是否相同
      2. 使用的时候需要子类覆盖equals方法
    4. 覆盖原则:对比内容是否相同:是否需要对比所有属性则需要根据业务需要确定
    5. 覆盖的方式:
      1. 判断自身对象与参数对象是否是同一个对象
      2. 判断参数对象是否为空
      3. 判断自身对象与参数对象类型是否一致
      4. 对参数对象进行强制类型转换
      5. 根据业务需要对具体属性进行对比
  4. toString()
    1. 返回值:返回该对象的字符串形式表达(String类型)
    2. 作用:用于展示对象的内容
    3. 注意:
      1. ​ Object类默认的toString方法打印的是该对象的地址信息,包括全限定名和地址
      2. 使用的时候需要覆盖toString方法
      3. 覆盖的时候根据业务需要将对象属性拼接成字符串
  5. finalize()
    1. 垃圾回收器在回收垃圾对象的时候,自动调用的方法
    2. 作用:在对象被回收的时候被调用
    3. 注意:
      1. 由于垃圾回收时机不确定,所以不建议将资源释放的代码写在finalize方法中
      2. System.gc();语句仅声明垃圾回收器的启动,并不能决定是否启动成功

三、区别

  1. equals 和 == 的区别
    1. ==号用于对比两端的值是否相等
      1. 如果对比的是基本数据类型,对比值是否相同
      2. 如果对比的是引用数据类型,对比地址是否相同
    2. equals用于对比对象的内容是否相同
      1. Object类中的equals方法用于对比地址是否一致
      2. 子类覆盖之后,用于对比属性是否相同
  2. final和finallize的区别
    1. final是修饰符,用于修饰类,变量和方法
    2. finalize是Object类的成员方法,垃圾回收器
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值