当前位置: 首页 > news >正文

[java基础揉碎]Object类详解

目录

equals方法:

hashCode:

toString:

finalize:


 

equals方法:

==和equals对比

1.==: 既可以判断基本类型,又可以判断引用类型

2.==: 如果判断基本类型,判断的是值是否相等。示例: int i=10; double d=10.0;

3.==:如果判断引用类型,判断的是地址是否相等,即判定是不是同一个对象

1.equals:是Object类中的方法,只能判断引用类型 

2.默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等。比如 Integer,String[看看String 和 Integer的 equals 源代码]

 [java基础揉碎]idea怎么查看jdk源代码-CSDN博客

this == obj 就是说如果调用equals的这个当前对象就是传进来的这个对象(地址), 就返回true

 


hashCode:

[java面试题]为什么同一个对象他的eques和hashCode都必须相等_为什么equels相同哈希值就相同?-CSDN博客

下例中两个不同对象的hashCode是不同的: 

 如果指向同一对象, 那么是相同的:


toString:

object默认输出的: 

例如以下这个类没有重写toString方法默认走的就是Object的类 

打印得到的值: 

 以下可以看到确实是hashCode转成的十六进制的值

 重写之后默认是把对象的属性值输出, 也可以定制

 


finalize:

 new了一个对象, 这个对象此时有一个引用指向了一个地址, 当等于null时, 便没有了引用, 此时car对象就是一个垃圾 , 垃圾回收器会回收(销毁)这个对象, 销毁前会调用这个对象的finalize方法:

重写了finalize后: 

 在执行发现没有调用finalize里面的内容是怎么回事, 是因为垃圾回收器什么时候回收不是对象一变成垃圾就立马回收的,  而是有一个垃圾回收的算法

 我们可以通过System.gc()主动触发, 但是这个触发也有可能不生效的, (好比保洁阿姨正常是5点打扫卫生, 但是你觉得太脏了提前打电话叫了保洁阿姨, 此时如果保洁阿姨有时间可能立马就过来打扫, 如果此时保洁阿姨在打扫其他地方, 她可能就不过来了, 或者她就是没到点不过来) 所以说它还取决于系统的其他运行

 可以看到触发了:

但是调用过程可以看到, 掉了gc后, 他不会主动阻塞到这里,  先执行了"程序退出了....", 在执行了finalize里面重写的内容:

 

http://www.lryc.cn/news/320439.html

相关文章:

  • 23.1 微服务理论基础
  • 数据结构-基本概念-001
  • 以题为例浅谈SSRF
  • Java网络编程:探索奥秘与实践
  • Leetcode992-K个不同整数的子数组[两种方法] 关键词 滑窗
  • 【闲聊】-后端框架发展史
  • 界面控件DevExpress ASP.NET Scheduler - 助力快速交付个人信息管理系统(下)
  • 机器学习-04-分类算法-01决策树
  • 探索大数据时代的决策利器:如何有效应对海量数据?
  • Linux 学习笔记(16)
  • 【C语言】打印闰年
  • 外贸入门,很残忍但很真实的外贸真相
  • 【Linux网络编程七】网络序列化和反序列化(网络版本计算器)
  • 算法打卡day17|二叉树篇06|Leetcode 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
  • C语言之数据在计算机内部的存储
  • 程序人生——Java中基本类型使用建议
  • Pikachu 靶场搭建
  • 机器学习-绪论
  • mysql 索引(为什么选择B+ Tree?)
  • 蓝桥杯-带分数
  • 消息队列面试题
  • Android和IOS应用开发-Flutter 应用中实现记录和使用全局状态的几种方法
  • 若依 ruoyi-cloud [网关异常处理]请求路径:/system/user/getInfo,异常信息:404
  • 自然语言处理里预训练模型——BERT
  • 2024年信息技术与计算机工程国际学术会议(ICITCEI 2024)
  • 渗透测试修复笔记 - 02 Docker Remote API漏洞
  • Spring(创建对象的方式3个)
  • 【GPT-SOVITS-02】GPT模块解析
  • 6个选品建议,改善你的亚马逊现状。
  • SQL中的SYSDATE函数