Object类详解,equals,toString,finalize_听韩顺平课笔记

1.运算符==

面试题:==和equals的区别

2.查看jdk源码,equals方法(只能判断引用类型)

equals方法默认判断引用是否相等,通过重写,判断值是否相等

3.子类重写equals方法,Integer,String

重写前为地址比较,重写后为值比较

4.equals练习1

重写equals方法:

  • 判断两个对象是否为同一个对象
  • 判断传入对象是否符合规范(比较的两个对象类型要一致)
  • 向下转型拿到需要比较的各个属性
  • 进行比较

5.equals练习2

答案,String:

6.equals练习3

char,ASCII,比较的不是同一对象时编译报错

7.hashCode

哈希值的作用时提高具有哈希结构的容器效率
哈希值可能会碰撞,产生两个引用指向不同对象,但哈希值一样的情况(概率低)

8.toString方法

源码:

快捷键重写toString方法:Alt + Insert

直接输出一个对象,默认调用toString方法

9.finalize

  • 什么是资源:数据库链接,打开的文件

如何让一个对象变成垃圾:让它的所有引用都指向null,垃圾回收器有自己的一套算法,一个对象不会刚变成垃圾就被回收

通过重写finalize方法实现自己的业务逻辑
没有重写则使用Object的finalize方法

实际开发过程中几乎不会使用finalize

posted @ 2021-09-09 23:59  CH0701  阅读(55)  评论(0)    收藏  举报