[java基础揉碎]Object类详解

news2024/10/7 10:18:39

目录

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.coloradmin.cn/o/1526349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信息检索(十三):On Complementarity Objectives for Hybrid Retrieval

On Complementarity Objectives for Hybrid Retrieval 摘要1. 引言2. 相关工作2.1 稀疏和密集检索2.2 互补性 3. 提出方法3.1 Ratio of Complementarity (RoC)3.2 词汇表示(S)3.3 语义表示(D)3.4 互补目标 4. 实验4.1 实验设置4.2…

哪里有视频素材网站免费下载?高清烟花视频素材哪里有?

如果你在寻找那些能点亮夜空的绚丽烟花视频素材,或者无水印的高清视频素材,那下面这些资源网站将会是你的宝库。今天,我要分享给你一些最佳的无水印视频素材下载网站,让你的视频制作闪耀起来。 1.蛙学府 这个网站是视频创作者的天…

windows使用docker运行TP6使用swoole内置http服务

1,下载docker-Windows客户端 下载地址:https://www.docker.com/products/docker-desktop docker --version #查看docker版本 docker-compose --version #查看docker-compose版本 2,安装环境 使用一键安装包:https://gitee.com/yes…

如何在Linux CentOS部署宝塔面板并实现固定公网地址访问内网宝塔

文章目录 一、使用官网一键安装命令安装宝塔二、简单配置宝塔,内网穿透三、使用固定公网地址访问宝塔 宝塔面板作为建站运维工具,适合新手,简单好用。当我们在家里/公司搭建了宝塔,没有公网IP,但是想要在外也可以访问内…

Android和IOS应用开发-Flutter 应用中实现记录和使用全局状态的几种方法

文章目录 在Flutter中记录和使用全局状态使用 Provider步骤1步骤2步骤3 使用 BLoC步骤1步骤2步骤3 使用 GetX:步骤1步骤2步骤3 在Flutter中记录和使用全局状态 在 Flutter 应用中,您可以使用以下几种方法来实现记录和使用全局状态,并在整个应…

深度学习pytorch——基本数据类型创建Tensor(持续更新)

声明:本深度学习笔记基于课时18 索引与切片-1_哔哩哔哩_bilibili学习而来 All is about Tensor 定义:Tensors are simply mathematical objects that can be used to describe physical properties, just like scalars and vectors. In fact tensors a…

粤嵌6818开发板通过MobaXterm使用SSH连接开发板

链接:https://pan.baidu.com/s/18ISP4Ub1HtQx6jCvTQTUHw?pwdfjmu 提取码:fjmu 1.把SSH_config.tar.bz 下载到开发板中 2.解压 SSH_config.tar.bz 解压命令:tar -xzvf SSH_config.tar.bz 3.配置SSH 进入SSH/openssh目录&am…

【深度长文】聊一聊 Java AbstractQueuedSynchronizer 以及在 ReentrantLock 中的应用

文章目录 AQS 原理简述内部数据结构公平锁 vs. 非公平锁ReentrantLock 非公平锁ReentrantLock 公平锁 AQS 源码分析加锁过程addWaiteracquireQueuedshouldParkAfterFailedAcquirecancelAcquire 解锁过程unparkSuccessor AbstractQueuedSynchronizer (AQS) 是 Java 并发包中&…

【Qt问题】解决已经下载好的qt怎么添加或卸载其他组件

问题描述: 使用一段时间Qt以后发现需要用到某个组件,比如Qt Webengine这个组件等,而此时我又不可能把Qt卸载了,重新安装一次。 解决办法: 其实Qt提供了安装或卸载其他组件的方式,以下是操作步骤&#xff…

nuxt3项目总结

nuxt3项目总结 仓库 前言 大半年的时间,项目从秋天到春天,从管理后台到APP再到数据大屏,技术栈从vue3到uniApp再到nuxt3,需求不停的改,注释掉代码都快到项目总体的三分之一。 一、准备-搭建项目架子 1.1 创建一个…

windows无法启动HV主机服务 服务(位于本地计算机上) 错误 1068:依赖服务或组无法启动

背景: LZ本地装了VMware Workstation虚拟机,里面装了Oracle, 又在Docker里装了PostgreSQL, 操作系统是Windows10 专业版 如果启动VM,就报这个错Device/Credential Guard 不兼容 参考这个博客,就可以解决 与Device/Credetial Guard不兼容 我用到的是方法二, 但是想用Docker时, …

吴恩达机器学习笔记 二十四 决策树模型 学习过程 什么时候停止分裂 如何选择结点特征

案例:识别小猫,上面这个分类的特征 x 采用分类值(几个离散的值) 决策树最顶端的结点称根结点(root node),除了根结点和叶子结点之外的叫决策结点(decision node),最底层的叫叶子结点(leaf node)&#xff0c…

JVM的双亲委派模型和垃圾回收机制

jvm的作用是解释执行java字节码.java的跨平台就是靠jvm实现的.下面看看一个java程序的执行流程. 1. jvm中的内存区域划分 jvm也是一个进程,进程在运行过程中,要行操作系统申请一些资源.这些内存空间就支撑了后续java程序的执行. jvm从系统申请了一大块内存,这块内存在java程序使…

蓝桥杯2022年第十三届省赛真题-选数异或

solution1&#xff08;55/100 只保留最后一次的位置&#xff0c;其实有点问题&#xff0c;能骗一点分数 #include<iostream> #include<map> using namespace std; const int maxn 1e5 10; int a[maxn]; int main(){int n, m, x, l, r, t, flag;map<int, int…

知识分享:宣传海报中的APP下载二维码如何制作?

近期&#xff0c;在北京地铁西直门站内&#xff0c;出现了一组十分醒目的海报&#xff0c;海报上加大、加粗的趣味文字深深地共情了每一个苦命的打工人。 比如&#xff1a; 查询我的精神状态 老板画的饼有多大&#xff1f; 为什么早上的会那么好睡&#xff1f; 再比如&#x…

云计算与APP开发,如何利用云端服务提升应用性能?

随着移动应用程序&#xff08;APP&#xff09;的普及&#xff0c;如何提升应用性能成为了开发者们关注的重点之一。而云计算技术的发展为APP开发者提供了全新的解决方案。本文将探讨云计算与APP开发的结合&#xff0c;以及我们公司提出的解决方案&#xff0c;帮助开发者利用云端…

人工智能如何撬动新质生产力发展?

全国两会期间&#xff0c;“新质生产力”成为高频词&#xff0c;引发高度关注。新质生产力是由技术革命性突破、生产要素创新性配置、产业深度转型升级催生的当代先进生产力。而人工智能被视为形成新质生产力的重要引擎。 随着人工智能&#xff08;AI&#xff09;技术跨越奇点…

24.2 SpringCloud电商进阶开发

24.2 SpringCloud电商进阶开发 1. 定时任务1.1 使用场景1.2 CRON表达式1.3 代码实战*****************************************************************************************************1. 定时任务 1.1 使用场景

数学建模-多目标规划算法(美赛建模)

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是viperrrrrrr~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#xff…

拆解Spring boot:Springboot为什么如此丝滑而简单?源码剖析解读自动装配

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &a…