尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
==和equals的比较
定义 是Java中的比较运算符用于比较两个变量的值是否相等。对于基本数据类型比较的是实际值对于引用类型比较的是内存地址。equals() 是Object类的方法默认实现也是比较内存地址。但许多类如String、Integer等会重写equals()方法改为比较对象内容是否相等。和equals是java中比较核心区别在于 比较的是「内存地址」equals() 比较的是「对象内容」下面是两个的操作符定义那么比较和equalspublicclassTest{publicstaticvoidmain(String[]args){inta10;intb20;intc10;System.out.println(ab);//数值不相等输出结果是falseSystem.out.println(ac);//数值相等输出的结果为true//System.out.println(a.equals(b));//equals比较的是字符串StringAhello;StringBworld;StringChello;System.out.println(A.equals(B));//输出false字符串两个不相等System.out.println(A.equals(C));//输出true因为两个字符完全相等System.out.println(AC);//输出的为trueA 和 C 指向同一个内存地址}}A和C 的地址详细介绍 java栈和堆equals的方法重写publicclassStudent{publicStringname;publicintage;publicStudent(Stringname,intage){this.namename;this.ageage;}// 重写equals()按内容比较Overridepublicbooleanequals(Objecto){// 1. 地址相同直接返回trueif(thiso)returntrue;// 2. obj为null 或 类型不同返回falseif(onull||getClass()!o.getClass())returnfalse;// 3. 强转后比较内容Studentstudent(Student)o;returnagestudent.agename.equals(student.name);}publicstaticvoidmain(String[]args){Students1newStudent(张三,18);Students2newStudent(张三,18);Students3newStudent(李四,20);// 比较测试System.out.println(s1 s2: (s1s2));// false比较引用地址System.out.println(s1.equals(s2): s1.equals(s2));// true比较内容System.out.println(s1.equals(s3): s1.equals(s3));// false}}常见坑点避坑指南坑 1用 比较 String 内容❌ 错误if (str1 “hello”)✅ 正确if (str1.equals(“hello”))或 Objects.equals(str1, “hello”) 避免空指针坑 2比较时忽略 null❌ 错误str.equals(“hello”)str 为 null 时抛空指针✅ 正确“hello”.equals(str)常量在前或 Objects.equals(str, “hello”)坑 3自定义类重写 equals() 但不重写 hashCode()规则如果两个对象 equals() 返回 true它们的 hashCode() 必须相等反之不强制。后果若只重写 equals()将对象放入 HashMap/HashSet 时会出现逻辑错误。总结1.基本类型只用 比较数值equals() 不适用引用类型2. 比较「内存地址」判断是否为同一个对象equals() 默认同 重写后比较「对象内容」如 String/Integer/ 自定义类3.核心原则比较「内容」用 equals()比较「是否为同一对象」用 。
RELATED

相关推荐

dsh-purge完全指南:如何给模型换破甲提示词

dsh-purge完全指南:如何给模型换破甲提示词

dsh-purge完全指南:如何给模型换破甲提示词 【免费下载链接】dsh-purge DeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model…

📅 2026/10/27 1:31:18
AIGC应用层落地:AI Agent、专属模型与确定性工程

AIGC应用层落地:AI Agent、专属模型与确定性工程

简介:《2024AIGC应用层十大趋势白皮书》是IDC与钉钉于2024年1月发布的行业趋势报告,面向企业业务与技术管理者、数字化从业者及关注生成式AI落地的读者。内容从产业方向、应用形态与市场影响等维度,梳理应用层创新、大模型从“赶时髦”到“真…

📅 2026/10/27 1:31:18
Roo Code 接本地模型卡顿排查与优化指南:从 Ollama 到上下文管理

Roo Code 接本地模型卡顿排查与优化指南:从 Ollama 到上下文管理

用Roo Code接本地模型的坑,一点不比用云API少。我最早从Cline迁到Roo Code,图的就是它可以自由接本地模型,省得把代码上下文往云端传。可装上当天就傻眼了:一个中等项目的代码库,每次等它回答都要先转圈二十秒&#xf…

📅 2026/10/27 1:31:18
MORE NEWS

更多资讯

📰

零基础搞定CATIA二次开发:CAA、RADE与VS环境搭建全攻略

简介:这份文档面向 CATIA 二次开发初学者与刚进入研究生阶段的学习者,针对专业软件安装繁琐、环境配置易出错这一入门痛点,系统梳理从零搭建开发环境的完整路径。内容围绕 Microsoft Visual Studio 2005、CATIA V5R19、CAA 与 RADE 四款软件的…

📰

32位Office与64位ACE引擎安装冲突:根因分析与MSI修改解决方案

简介:这份文档面向在64位Windows系统上同时使用32位Office 2007与64位Access Database Engine 2010时遭遇安装冲突的技术人员,聚焦ACE引擎版本不兼容这一典型问题,提供一套可落地的解决思路。资源包共1个docx文件,约47KB&#xff…

📰

32位Office与64位ACE引擎共存:7-Zip拆包+ORCA改MSI实战

简介:这份文档面向在64位Windows系统上同时使用32位Office 2007与64位Access Database Engine时遭遇安装冲突的技术人员,聚焦ACE引擎版本不兼容这一典型问题,提供可落地的解决思路。资源包共1个docx文件,约47KB,以图文…

📰

UiPath下载安装与社区版配置:许可证、Profile与包源避坑

简介:这是一份面向办公自动化初学者与职场新人的 UiPath 下载入门指南,围绕 RPA 工具的获取渠道与安装流程展开,适合想接触 RPA 技能、却不知从何处下手的零基础读者参考。资源包共 1 个 docx 文件,约 235KB,以文字步骤…

📰

UiPath社区版安装全流程:环境对表、注册激活与避坑验收

简介:一份面向零基础职场人的 UiPath 下载与安装指引文档,围绕 RPA 自动化工具的获取流程整理,适合对办公自动化感兴趣、希望通过社区版快速上手的个人学习者。文档系统梳理了从进入官网选择社区版或企业版、填写个人信息时个人邮箱与企业邮箱…

📰

会议纪要哪个软件总结精准?智在记录、通义听悟、飞书妙记、Otter.ai 横评实测

开完一场两小时的会,录音躺在手机里,逐字稿几万字,真正要写进纪要的那三五条结论,还得自己一条条翻出来。这件事看着不大,但一周重复五六次,就是实打实的时间成本。这两年会议纪要工具的变化很明显&#xf…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬