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

== 和 equals 的区别

1. == 运算符

  • 比较的是对象的引用(内存地址),判断两个对象是否指向堆内存中的同一块地址。

  • 对于基本数据类型(如 intchardouble 等),== 直接比较的是是否相等。

  • 对于引用类型(如 String, 自定义类对象等),== 比较的是引用是否相同(即是否为同一个对象)。

String s1 = new String("hello");
String s2 = new String("hello");
String s3 = s1;System.out.println(s1 == s2); // false(不同对象,地址不同)
System.out.println(s1 == s3); // true(s3 和 s1 指向同一个对象)

2. equals() 方法

  • 默认行为与 == 相同(比较引用),但通常被重写(Override)用于比较对象的内容是否逻辑相等

  • 例如,StringInteger 等类重写了 equals(),使其比较的是对象的值而非引用。

  • 如果自定义类需要比较内容,必须重写 equals()(同时通常也要重写 hashCode())。

    String s1 = new String("hello");
    String s2 = new String("hello");System.out.println(s1.equals(s2)); // true(String 重写了 equals,比较字符内容)

    3. 总结

  • 共同点:都是用于比较操作
  • 不同点:用 == 判断是否为同一个对象(或基本类型的值相等)。

                     用 equals() 判断对象的内容是否逻辑相等(需注意是否被正确重写)。

相关文章:

  • 旧物回收小程序开发——让闲置再生价值,用科技撬动绿色经济
  • 如何把一台电脑作为另外一台电脑的显示器
  • 对比关系型数据库与NoSQL数据库
  • 【数组的定义数组与内存的关系】
  • 基于微信小程序的高校校园微活动管理系统设计与实现(源码+定制+开发)高校微信小程序校园活动发布与互动平台开发 面向大学生群体的校园活动移动平台设计与实现
  • Redis核心用法与通用命令全解析
  • 212. 单词搜索 II
  • 机器人收硬币算法c++,完整代码可运行
  • TDengine 高可用——双副本
  • Android Raspberry 请求 api 失败 iOS 请求成功【ssl 证书配置问题】
  • 【LangChain大模型应用与多智能体开发 ① 初识LangChain 】
  • 人工智能100问☞第30问:什么是损失函数?
  • 20250523-BUG:无法加载“GameLib/Framework.h“头文件(已解决)
  • 【Kafka】编写消费者开发模式时遇到‘未解析的引用‘SIGUSR1’’
  • 20250523-BUG-E1696:无法打开元数据文件“platform.winmd(已解决)
  • UI 设计|提高审美|Linear UI风格分享
  • 钉钉出口IP有哪些
  • ECharts图表工厂,完整代码+思路逻辑
  • 【GAN网络入门系列】二,DCGAN人脸图片生成与转置卷积讲解
  • Redis7 新增数据结构深度解析:ListPack 的革新与优化
  • 企业内部系统网站制作/百度推广app下载
  • 沈阳网站开发简维/黑龙江头条今日新闻
  • 淘宝领券网站怎么做/免费seo网站推广
  • 免费申请做网站平台/中国局势最新消息今天
  • 厦门外贸网站建设哪家公司大/媒体公关公司
  • php开发做网站/个人网站怎么做