java中 == 和 equals 有什么区别?

==equals 在 Java 中有着不同的作用和使用场景:

  1. == 是一个操作符,用于比较两个对象的引用是否相同。如果两个对象引用同一个内存地址,则 == 返回 true;否则返回 false。在比较基本数据类型时,== 比较的是它们的值是否相等。

  2. equals 是一个方法,用于比较两个对象的内容是否相等。通常情况下,如果类没有重写 equals 方法,则 equals== 的作用是相同的,即比较对象的引用是否相同。但是,可以通过重写 equals 方法来改变比较的方式,使其比较对象的内容而不是引用。在 Object 类中,equals 的默认实现就是比较对象的引用。

举个例子:

String str1 = "hello";
String str2 = "hello";System.out.println(str1 == str2);      // true,因为字符串常量池会确保相同的字符串只有一个实例
System.out.println(str1.equals(str2)); // true,因为它们的内容相同String str3 = new String("hello");
String str4 = new String("hello");System.out.println(str3 == str4);      // false,因为它们是不同的对象实例
System.out.println(str3.equals(str4)); // true,因为它们的内容相同StringBuilder sb1 = new StringBuilder("hello");
StringBuilder sb2 = new StringBuilder("hello");System.out.println(sb1 == sb2);      // false,因为它们是不同的对象实例
System.out.println(sb1.equals(sb2)); // false,StringBuilder 类没有重写 equals 方法Integer num1 = 100;
Integer num2 = 100;System.out.println(num1 == num2);      // true,因为对于 Integer 类型,-128 到 127 之间的值会被缓存
System.out.println(num1.equals(num2)); // true,因为它们的值相同Integer num3 = 200;
Integer num4 = 200;System.out.println(num3 == num4);      // false,因为超出了缓存范围,会创建新的对象实例
System.out.println(num3.equals(num4)); // true,因为它们的值相同

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/789576.shtml

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

相关文章

抓住信号如此简单,WeTrade一个指标1分钟轻松解决

在交易中是不是有这样的困惑,没有清晰的计算逻辑还抓不住交易的信号,这样的投资者有福了,今天WeTrade众汇分享一个指标1分钟轻松解决这个困惑。 ROC全称Rate of Change,中文名为变动速度指标或变动率指标,它以百分比的…

Java就近原则和this关键字

Java 中的就近原则和 this 关键字有着密切的关系,特别是在处理成员变量与方法参数同名的情况下。就近原则指的是在同一作用域下,优先使用最近声明的变量或参数。 在 Java 中,如果一个方法的参数与类的成员变量同名,为了明确指示要…

大数据实验四-MapReduce编程实践

一.实验内容 MapReduce编程实践: 使用MapReduce实现多个文本文件中WordCount词频统计功能,实验编写Map处理逻辑、编写Reduce处理逻辑、编写main方法。 二.实验目的 1、通过实验掌握基本的MapReduce编程方法。 2、实现统计HDF…

【机器学习】数据探索(Data Exploration)---数据质量和数据特征分析

一、引言 在机器学习项目中,数据探索是至关重要的一步。它不仅是模型构建的基础,还是确保模型性能稳定、预测准确的关键。数据探索的过程中,数据质量和数据特征分析占据了核心地位。数据质量直接关系到模型能否从数据中提取有效信息&#xff…

Vue-Electron配置及踩坑

前言 大道至简。太复杂的教程不看。 本篇将记述我创建好Vue3项目之后,用Electron把页面呈现出来的整个过程。会记录一些踩坑。 首先,Electron官网可以参考。但是它只是作出了一个普通的html结构该如何用Electron呈现出来,vue的配置有一些变…

C 函数指针与回调函数

函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。 函数指针可以像一般函数一样,用于调用函数、传递参数。 函数指针类型的声明: typedef int (*fun_ptr)(int,i…

OC分层渲染详解,OC分层渲染与云渲染区别

​OC分层渲染通过分层处理场景来提升渲染效率,而云渲染借助云服务器进行远程高性能渲染。主要差异在于OC分层渲染优化了本地渲染过程,云渲染则依靠云计算资源执行。 OC分层渲染是指什么 OC分层渲染,即Object Channel分层渲染,是一…

C语言运算符和表达式——赋值中的自动类型转换(精度损失问题)

目录 自动类型转换 数值精度损失 自动类型转换 在不同类型数据间赋值时,会发生自动类型转换 *取值范围大的类型 → 取值范围小的类型,通常是不安全的 *数值溢出(Overflow) *反之,一定都是安全的吗?…

fastlio2 给 interactive-slam 保存每帧的点云和每帧的里程计为单独的文件做后端回环优化和手动回环优化

为了给 interactive-slam 提供数据做后端回环优化和手动回环优化,需要保存每帧的点云和每帧的里程计为单独的文件,并且需要保存的名字为ros时间戳。 效果很好,比我自己写的手动回环模块好用 // This is an advanced implementation of the algorithm described in the // fo…

Golang和Java对比

其实我是Javaer转的Golang,我谈谈自己对Java和Golang的体会 我先讲讲我认为Golang的优点 1、Golang是一门新语言,相比于Java,他的生态要小很多,优点很明显,自由度高,学习成本低,能快速拉起一个…

linux 克隆更新 UUID方法

# 查看当前machine-id cat /etc/machine-id rm -rf /etc/machine-id cat /dev/null > /etc/machine-id reboot cat /etc/machine-id 更新网卡ID uuidgen 网卡名称 更新mysql uuid 如果是复制系统,需要改变各节点 uuid ln -s /mysql/data/3306/mysql.sock…

数据结构——二叉树链式结构

目录 前言 1. 二叉树的概念及结构 1.1概念 1.2 特殊的二叉树 1.3 二叉树的性质 1.4 二叉树的存储结构 2. 二叉树链式结构实现 2.1 手动创建二叉树 2.2 二叉树的遍历 2.2.1 前序、中序和后序遍历 2.2.2 层序遍历 2.3 节点个数以及高度 2.3.1 节点个数 2.3.2 求二叉…

宁波中墙建材蒸压加气混凝土砌块用半挂车运输,如何卸货,有什么注意点

宁波中墙建材蒸压加气混凝土砌块用半挂车运输,如何卸货,有什么注意点蒸压加气混凝土砌块是一种轻质多孔的建筑材料,由于其体积大且易碎,因此在运输和卸货过程中需要特别注意。以下是使用半挂车运输蒸压加气混凝土砌块时的卸货方法…

【云呐】固定资产清查盘点报告模板

固定资产清查盘点报告的大致框架:一、前言说明本次清查盘点的背景和目的清晰表述清查盘点的责任与相关依据二、清查盘点范围按部门或区域明确清查范围口径明确被清查项目,如所有原值一定数额以上的固定资产三、清查盘点时间确定清查盘点实施的时间节点 四、清查盘点方法描述清查…

Java中使用MQTT客户端库实现TLS/SSL加密通信的示例

以下是一个完整的Java代码示例,展示了如何使用Eclipse Paho MQTT客户端库在Java中实现TLS/SSL加密的MQTT通信。在这个示例中,我们将创建一个简单的MQTT客户端,该客户端连接到支持TLS/SSL的MQTT代理,并发布和订阅消息。 首先&…

【EI检索稳定,往届均已检索】第三届机器学习、云计算与智能挖掘国际会议(MLCCIM 2024)

第三届机器学习、云计算与智能挖掘国际会议(MLCCIM 2024) 2024年5月30日-6月3日 中国湖北|神农架 www.mlccim.org 会议简介 第三届机器学习、云计算与智能挖掘国际会议(MLCCIM 2024)将于2024年5月30日-6月3日在中国湖北省神农…

回文数-第15届蓝桥第5次STEMA测评Scratch真题精选

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第179讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,…

nginx与tomcat的区别?

关于nginx和tomcat的概念 网上有很多关于nginx和tomcat是什么东西的定义,我总结了一下: tomcat是Web服务器、HTTP服务器、应用服务器、Servlet容器、web容器。 Nginx是Web服务器、HTTP服务器、正向/反向代理服务器,。 这里有两个概念是交叉的&#xff…

【C++STL详解(二)】——string类模拟实现

目录 前言 一、接口总览 二、默认成员函数 1.构造函数 2.拷贝构造 写法一:传统写法 写法二:现代写法(复用构造函数) 3.赋值构造 写法一:传统写法 写法二:现代写法(复用拷贝构造) 4.析构函数 三、…

包含密钥的OMP压缩感知模拟(MATLAB)

压缩感知(Compressed Sensing,CS)是一种新颖的信号采样和重建理论,它通过利用信号的稀疏性或者低维性,从极少量的观测中直接重建出完整的信号。压缩感知的核心思想是,在合适的条件下,信号本身的稀疏性或低维性可以使其信息内容大幅减少,从而可以通过较少的观测数据进行…