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

Java Object 类笔记

在 Java 的世界里Object类是一切类的始祖。理解它的核心方法掌握String及其相关类的特性是每一个 Java 开发者从入门到精通的必经之路。本文将系统地梳理 Object 类的 11 个核心方法深入探讨equals与hashCode的约定并全面对比String、StringBuffer与StringBuilder的区别。一、Object 类有哪些核心方法JavaObject类是所有类的超类默认提供 11 个核心方法涵盖了对象比较、哈希、字符串表示、线程同步等方面。1.equals(Object obj)作用比较两个对象是否相等。说明默认实现比较内存地址与相同。实际开发中通常需要重写按对象的内容如字段值判断相等性。2.hashCode()作用返回对象的哈希码值。说明与equals配套使用。若两个对象equals返回true则hashCode必须相等若hashCode不等则equals必为false。如果只重写equals不重写hashCode会导致对象在HashMap、HashSet等集合中无法正确存储。3.toString()作用返回对象的字符串表示。说明默认格式为“类名 对象的十六进制哈希码”如User1b6d3586可读性差。通常重写为返回对象的具体信息便于日志打印和调试。4.getClass()作用返回对象运行时的实际类对象。说明final方法不可重写。常用于反射获取类的名称、方法、字段等信息也可用于运行时类型检查。5.clone()作用创建并返回对象的一个副本。说明用于对象的浅拷贝。使用clone需要实现Cloneable接口否则抛出CloneNotSupportedException。6.notify()作用随机唤醒一个等待当前对象锁的线程。说明必须在同步块中使用。7.notifyAll()作用唤醒所有等待当前对象锁的线程。说明必须在同步块中使用。8.wait()作用让当前线程释放对象锁并进入等待状态直到被notify/notifyAll唤醒。说明必须在同步块中调用通常放在循环中检查等待条件以避免“虚假唤醒”。9.wait(long timeout)作用让当前线程等待指定的毫秒数超时后自动唤醒。说明timeout为 0 表示无限等待。10.wait(long timeout, int nanos)作用提供更精确的时间控制毫秒 纳秒。说明实际超时时间可能受系统调度影响。11.finalize()作用垃圾回收器回收对象前调用用于执行清理工作。说明已过时Deprecated since Java 9。执行时机不确定可能影响性能甚至导致对象复活。替代方案是使用try-with-resources或PhantomReference。二、 与 equals 有什么区别对于基本数据类型比较的是值是否相同对于引用数据类型比较的是引用地址是否相同。equals()不能用于基本数据类型。Object类中的equals()默认使用比较地址。但String类重写了equals()方法先比较地址地址不同则比较内容是否相同。三、为什么重写 equals 方法时必须重写 hashCode 方法在 Java 中equals和hashCode遵循以下约定一致性如果obj1.equals(obj2)返回true那么obj1.hashCode()必须等于obj2.hashCode()。非一致性如果两个对象的hashCode相同equals不一定为true哈希冲突。如果不重写hashCode可能导致对象在哈希集合如HashMap、HashSet中无法正确存储。例如两个id相同的User对象equals返回true但hashCode不同会被当成两个不同元素存入集合。四、Java 中 String 的常用方法有哪些int length()返回字符串长度。boolean equals(Object obj)比较字符串内容是否相同区分大小写。String substring(int beginIndex)从指定索引开始截取子串。String trim()去除字符串首尾空白字符。String replace(char oldChar, char newChar)替换所有指定字符。boolean isEmpty()判断字符串长度是否为 0注意null调用会报错。五、String、StringBuffer、StringBuilder 的区别与联系1. 可变性String不可变Immutable每次修改都会生成新对象。StringBuilder / StringBuffer可变Mutable可直接修改内容。2. 线程安全性String天然线程安全。StringBuilder非线程安全适合单线程。StringBuffer线程安全方法使用synchronized适合多线程。3. 性能String性能最低频繁修改会产生大量临时对象。StringBuilder性能最高无同步开销。StringBuffer性能略低于StringBuilder因有同步开销。4. 使用场景String字符串内容固定或变化少。StringBuilder单线程下频繁修改字符串。StringBuffer多线程下频繁修改字符串。特性StringStringBufferStringBuilder不可变性不可变可变可变线程安全是是否性能低中高适用场景少量修改多线程单线程六、String 为什么是不可变的因为String底层使用final修饰的char[]数组存储字符。数组本身不可变且String类没有提供修改数组内容的方法所有“修改”操作都会返回新对象。Java Object 类深度解析这种设计带来了线程安全、字符串常量池复用、哈希值缓存等好处。总结Object类是 Java 的根类掌握其核心方法是理解 Java 面向对象的基础。equals和hashCode的约定是哈希集合正确工作的关键。String、StringBuilder、StringBuffer的选择直接影响程序性能和线程安全性。

相关文章:

Java Object 类笔记

在 Java 的世界里,Object 类是一切类的始祖。理解它的核心方法,掌握 String 及其相关类的特性,是每一个 Java 开发者从入门到精通的必经之路。本文将系统地梳理 Object 类的 11 个核心方法,深入探讨 equals 与 hashCode 的约定&am…...

学习C语言第22天

我们讲一下常用的定义函数,我们来讲一下它的格式返回值类型 函数名(形参1,形参2,。。。。) { 函数体; return 返回值; }接受时候用变量。接下来讲函数的注意事项:函数不调用就不执行…...

虚拟数字人品牌建设的“表情交互”架构:AI应用架构师的计算机视觉方案

让虚拟数字人“活”起来:表情交互背后的AI视觉架构设计——品牌人格落地的关键密码 关键词 虚拟数字人、表情交互、计算机视觉、品牌人格、情绪计算、面部动作编码系统(FACS)、实时推理 摘要 虚拟数字人是品牌与Z世代沟通的“数字分身”,但**“表情塑料感”却成了人格传…...

聚力谱新篇,逐梦新征程!itc保伦股份市场服务部、设计部启动大会圆满举行!

春风擂战鼓,三月启新程为凝聚团队力量明确年度目标,部署全新征程itc市场服务部、设计部2026年工作启动大会分别于3月5日、3月7日在金山谷总部顺利举行各位精英带着光荣与梦想聚力谱新篇,逐梦新征程市场服务部士气展示设计部士气展示战旗猎猎&…...

【JAVA基础09】—— 赋值与三元运算符:从基础到实操的避坑指南

作为一名有着5年Java开发经验的后端工程师,最近在Code Review时发现,很多刚入行的小伙伴在处理简单的逻辑判断时,还在写那套厚重的 if-else。其实,Java 里的赋值运算符和三元运算符如果用好了,代码不仅能瘦身&#xff…...

【稳定EI检索】第二届桥隧建设与工程国际学术会议(BTCE 2026)

第二届桥隧建设与工程国际学术会议(BTCE 2026)将于2026年4月24-26日在青岛召开,这是一个集中探讨全球桥隧建设与工程领域创新和挑战的国际学术平台。旨在汇集全球领域内的学者、研究人员、政策制定者以及业界领导者,共同探讨各种与…...

优化论文质量的实用工具:9款高效查重软件深度测评

核心工具对比速览 工具名称 核心功能 处理时间 适配检测平台 特色优势 aibiye 降AIGC查重 20分钟 知网/格子达/维普 保留学术术语的AI痕迹弱化 aicheck AIGC检测降重 即时 主流学术平台 实时检测反馈精准降重 askpaper 学术AI优化 15-30分钟 高校常用系统 专…...

论文质量升级指南:9款查重工具精准评测

核心工具对比速览 工具名称 核心功能 处理时间 适配检测平台 特色优势 aibiye 降AIGC查重 20分钟 知网/格子达/维普 保留学术术语的AI痕迹弱化 aicheck AIGC检测降重 即时 主流学术平台 实时检测反馈精准降重 askpaper 学术AI优化 15-30分钟 高校常用系统 专…...

学术写作必备:9款查重工具详细对比与使用技巧

核心工具对比速览 工具名称 核心功能 处理时间 适配检测平台 特色优势 aibiye 降AIGC查重 20分钟 知网/格子达/维普 保留学术术语的AI痕迹弱化 aicheck AIGC检测降重 即时 主流学术平台 实时检测反馈精准降重 askpaper 学术AI优化 15-30分钟 高校常用系统 专…...

提升学术成果的利器:9大查重工具全面解析

核心工具对比速览 工具名称 核心功能 处理时间 适配检测平台 特色优势 aibiye 降AIGC查重 20分钟 知网/格子达/维普 保留学术术语的AI痕迹弱化 aicheck AIGC检测降重 即时 主流学术平台 实时检测反馈精准降重 askpaper 学术AI优化 15-30分钟 高校常用系统 专…...

PAT 乙级 1113

insert的语法要用对。insert 不能跟 vector 一起用。append的语法也要用对。jin位如果在最后是 1 要注意添加1.添加前导 0 是在前面添加不是在后面添加。我以后就固定一个方向,哪里是前面。string ans;一定要跟ans.resize(n) 搭配着用。这样才可以写ans[i]。不然就只…...

Hadoop生态中的数据生命周期管理技术深度剖析

Hadoop生态中的数据生命周期管理技术深度剖析 关键词:Hadoop、数据生命周期管理、分级存储、元数据管理、冷热数据分层、存储成本优化、合规性 摘要:在Hadoop生态中,海量数据的存储与管理是核心挑战。本文将以“数据生命周期管理”为主线&…...

第10章 矩阵分解:拆解复杂矩阵,简化工程应用

底层数学四部曲第四部 线性代数:入门与全领域展开 第10章 矩阵分解:拆解复杂矩阵,简化工程应用 矩阵分解的本质,是把一个复杂、难懂、难算的矩阵,拆成几个结构简单、性质清晰、好计算的矩阵乘积。 它不是抽象数学游…...

【HarmonyOS 6】个人中心数据可视化实战

一、案例背景 在健康管理类应用中,用户希望在“个人中心”快速查看周期性的健康汇总。相比单一数据,健康报告弹窗能在一个页面中集中展示平均分、每日评分、分项进度与健康建议,阅读效率更高。 本案例面向 HarmonyOS 6 初学者,聚焦…...

parser.add_argument(“experiment_dir“, type=str)和parser.add_argument(“--experiment_dir“, type=str)的区别

这两者存在重要区别: 主要区别 1. 位置参数 vs 可选参数parser.add_argument("experiment_dir", typestr) 这是位置参数,必须按照顺序提供,不能省略parser.add_argument("--experiment_dir", typestr) 这是可选参数&…...

**发散创新:基于Python的伦理黑客实战演练——从漏洞探测到防御加固全流程解

发散创新:基于Python的伦理黑客实战演练——从漏洞探测到防御加固全流程解析 在网络安全日益复杂的今天,伦理黑客(Ethical Hacking) 不再是单纯的“攻击技术”,而是成为保障系统安全的核心能力之一。本文将以 Python 语…...

**图神经网络实战:用PyTorch Geometric构建社交关系预测模型**在当前人工

图神经网络实战:用PyTorch Geometric构建社交关系预测模型 在当前人工智能快速演进的背景下,图神经网络(Graph Neural Networks, GNNs) 已成为处理复杂结构数据的重要工具。相比于传统深度学习模型对图像或序列数据的依赖&#xf…...

魔术橡皮 3.1.17 | 无限次AI生图,AI橡皮,图片AI编辑修改

Magic Eraser是一款功能强大且操作简便的照片编辑工具,其核心功能是帮助用户快速去除照片中不必要的物体,并借助智能算法保证修复效果自然流畅。无论是用于旅行照片处理、社交媒体分享,还是日常摄影,该应用都能为用户提供诸多便利…...

《C++实战项目-高并发内存池》7.大块内存的申请与释放

💡Yupureki:个人主页 ✨个人专栏:《C》 《算法》《Linux系统编程》《高并发内存池》 🌸Yupureki🌸的简介: 目录 1. 大块内存的申请 2. 大块内存的释放 完整项目链接https://github.com/Yupureki-code/ConcurrentMemoryPool 1. 大块内存的申…...

Qt Creator + MSVC 2022 64bit 配置 Dump 文件生成与分析流程

Qt Creator MSVC 2022 64bit 配置 Dump 文件生成与分析流程Qt Creator MSVC 2022 64bit 环境下配置生成dump文件可以通过修改注册表,当应用程序崩溃时自动生成dump文件特定应用程序设置生成dump假如应用程序为Vtk_Helloworld.exe,生成dump文件目录设置…...

微软在Windows 11中新增Xbox模式

微软在周三宣布了一项"创新"功能,将在Windows 11系统中增加Xbox模式。这一消息出现在微软副总裁Jason Ronald发布的关于未来游戏计划的帖子中。他表示:"随着游戏日益跨设备发展,我们正在打破主机和PC游戏之间的壁垒&#xff0…...

IBM助力实现费曼量子模拟愿景

IBM发布了将量子计算整合到高性能计算数据中心和工作流程的详细参考架构。该架构展示了如何在不进行颠覆性改变的情况下,将量子处理单元嵌入到现有高性能计算基础设施中。量子为中心的超算正在实现为科学家提供价值的化学模拟。通过这项工作,IBM正在推进…...

东华OJ-进阶题-10-分解质因数(C++)

问题描述 求出区间[a,b]中所有整数的质因数分解。输入说明 输入两个整数a&#xff0c;b。 2<a<b<10000 输出说明 每行输出一个数的分解&#xff0c;形如ka1a2a3…(a1<a2<a3…&#xff0c;k也是从小到大的)(具体可看范例)输入范例 3 10输出范例 33 42*2 55 62*3 …...

实战|AI应用架构师用GNN构建智能客服的意图识别

实战|用GNN构建智能客服意图识别:从原理到落地的完整指南 副标题:结合知识图谱与图神经网络的精准意图理解方案 摘要/引言 问题陈述 智能客服的核心是意图识别——准确理解用户查询背后的需求(比如“我想改快递地址” vs “我的快递丢了”)。但传统方法存在明显局限:…...

图像拼接对齐

切割生成测试图片 import cv2 import numpy as np# 读取原图 img = cv2.imread(r"D:\data\video\jimeng_ok\143.jpg") # H x W x C# 获取高度和宽度 H, W = img.shape[:2]# 切割上下两部分 mid = H // 2 top_img = img[:mid, :, :].copy() # 上半部分 bottom_img…...

最强生图模型NanoBanana 2,一手深度测- 附教程

谷歌发布的最新NanoBanana2绘图模型&#xff0c;已经在全球范围刷屏。 NanoBanana2在世界知识、图像质量、推理能力和主体一致性等方面实现了全面升级&#xff0c;堪称当前地表最强生图模型。 生成速度和价格还只有上一代的一半&#xff0c;可以说性价比满满&#xff01; 但国…...

Agentic LLM工作流在钻井日报分析中的应用

虽然钻井在数字化和人工智能方面取得了快速进展&#xff0c;实现了更高的运营效率、风险缓解和数据驱动决策&#xff0c;但在记录钻井风险方面仍存在显著差距——特别是那些记录在每日钻井报告&#xff08;DDRs&#xff09;中、隐含在生产时间内和非结构化文档中的事件&#xf…...

如何优化大数据领域的数据建模流程

如何优化大数据领域的数据建模流程关键词&#xff1a;大数据、数据建模流程、优化策略、数据仓库、模型评估摘要&#xff1a;本文围绕大数据领域的数据建模流程优化展开&#xff0c;旨在探讨如何提升数据建模的效率与质量。首先介绍了大数据环境下数据建模的背景&#xff0c;包…...

AI Coding 从“抽盲盒”到“开火箭”:SDD+TDD 开发模式实战揭秘

AI Coding 从“抽盲盒”到“开火箭”&#xff1a;SDDTDD 开发模式实战揭秘 开篇&#xff1a;AI 时代的开发革命 2025 年&#xff0c;一位以色列工程师单枪匹马&#xff0c;用 AI 工具开发了一个代码生成平台&#xff0c;短短数周收获 10 万用户&#xff0c;半年后带着 8 人团…...

Kali Linux渗透测试与网络攻防实验靶场

DVWA网站漏洞靶场https://pan.quark.cn/s/8cba19076fa5https://pan.baidu.com/s/17CS5txxr-KpxtzwzIWRKmg?pwdhhd6bWAPP网站漏洞靶场https://pan.quark.cn/s/8a131e5840cchttps://pan.baidu.com/s/1DNeCWk-F-XjDKlWii5Ajqw?pwd4sma安卓渗透测试靶场https://pan.quark.cn/s/fd…...