Java基础——equals和==号比较

详解“==”和equals的区别 详解“==”和equals的区别一、“==”二、equals()三、栗子和解释说明3.1栗子3.2基本数据类型的比较3.3引用数据类型的比较3.3.1String类3.3.2未重写equals方法的类四、练手栗子 “==”和equals 最大的区别是 “==”是运算符,如果是基本数据类型,则比较存储的值;如果是引用数据类型,则比较所指向对象的地址值。 equals是Object的方法,比较的是所指向的对象的地址值,一般情况下,重写之后比较的是对象的值。 一、“==” “==”是运算符 ①如果比较的对象是 阅读详情

我们知道,栈内存里面存放的是方法里面的局部变量,可以理解为变量都是放到栈内存中的;堆内存存放的则是对象;

 

==比较:

==可以比较数值类型(byte,short,int,long,char,float,double)和对象

1.如果两个数值类型比较(不一定要求数据类型严格相同),则只要两个变量的值相等,返回true,如下返回的b是true:

Int i = 65; 

float f = 65.0f; 

boolean b = (i == f);

2.如果是两个对象比较,只要对象的内存地址相同(即指向的是同一个对象),则返回true;不同对象(即使内容一样)则返回false;如下返回的是false:

String s1 = new String(“hello”);

String s2 = new String(“hello”); 

boolean b = (s1 == s2);

 

equals比较:

如果使用equals所在的类没有重写equals方法,那么equals比较的是对象的hashcode的ID值,也就是对象的内存地址映射,相当于==比较的结果;

如果重写了equals方法,则根据具体的实现来比较得出结果;如String类重写了equals方法,比较的是字符串的内容是否相等,相等则返回true,否则返回false:

如果两个对象的内容相同,即使内存地址不同(不是同一个对象),都会返回true,如下true:

String s1 = new String(“hello”);

String s2 = new String(“hello”);  

s1.equals(s2) ---->true

 

总结:

==比较的是对象的内存地址,equals没有重写的时候也是比较对象的内存地址,重写了则根据具体实现来比较结果

加湿器方案-DLT8M04TS-杰力科创 基本组成: 一个触摸按键、一组RGB灯、一个雾化片、一个充电IC。 产品功能: 第一次上电光机状态,RGB红/绿/红灯依次闪烁灭; 2、按键功能:短按开关机和三档喷雾工作模式,第一次短按持续喷雾,短按第二次喷3S,停3S,短按第三次关闭喷雾模式,依次循环; 在喷雾或是不喷雾的状态下长按1.5S RGB灯渐变,一直循环,第二次长按当前灯光闪烁一下常亮,第三次长按关机; 3、持续喷雾定时5小时自动断电,间歇喷雾定时10小时自动断电,若在间歇工作时有切换为持续喷雾,那间歇喷雾的... 阅读详情

相关推荐

Vivado ILA调试全攻略:从HDL实例化到Block Design的5个实战技巧

本文全面解析了Vivado集成逻辑分析仪(ILA)的五种核心调试方法,涵盖从HDL代码实例化到Block Design集成的实战技巧。详细对比了不同方法的优缺点与适用场景,并重点介绍了如何利用Debug Hub高效管理多时钟域复杂调试,旨在帮助FPGA开发者精准定位问题,显著提升板级调试效率。

weixin_29214199的博客 376

JAVA - equal 和 == 等号比较

=号比较的是栈中的数据==可以用于基本数据类型和引用类型对于基本数据类型,数据存储在栈中,因此==判断的是值是否相同对于引用数据类型,栈中存储的是对象在堆中的引用地址,因此==比较的是对象在栈中保存的引用(地址)是否相同。

m1992222的博客 537

西门子机床数据采集实战:从828D到840DSL的CNC设备联网与实时监控

本文深入探讨了西门子机床数据采集的实战方案,重点解析了从828D到840DSL等CNC设备如何实现免授权、低成本联网与实时监控。文章通过对比不同型号系统的数据接口差异,提供了详细的配置步骤、核心数据点清单以及避坑指南,旨在帮助工厂技术人员经济高效地挖掘机床数据价值,提升生产管理效率。

weixin_29181861的博客 1328

java中双等于号==比较的是什么

java双等于号==比较的是什么

qq_40835367的博客 2298

企业数字化转型的 4A 架构指南:从概念解读到 TOGAF 阶段对应

4A企业架构是中国数字化转型实践中总结的简化框架,包含业务、应用、数据和技术四个架构层。它自上而下形成业务驱动应用的指导关系,自下而上构建技术支撑数据的实现路径,与国际标准TOGAF核心内容高度对应。该模型通过统一语言、战略对齐和系统梳理,有效连接业务需求与IT实施,已成为企业架构规划的实用工具。其分层结构清晰展示了从业务目标到技术落地的完整推导链,特别适合中国企业的数字化转型场景。

友莘居士的博客 2175

【数据挖掘】遗传算法原理浅析:什么是遗传算法?遗传算法的工作原理是什么?

遗传算法(Genetic Algorithm,GA),是进化算法的框架和核心。 各种进化算法有什么异同? - 及时物语的回答 - 知乎 https://www.zhihu.com/question/39152390/answer/901070749

纸羊同学的博客 4275

Java中比较运算符详解(==,equals,compareTo)

本文对Java中的相等判断进行详细解释,包括==,equals和compareTo等。

qq_50604294的博客 963

信创那些事儿——Spring Boot中集成东方通中间件(TongWeb)

在Spring Boot中集成东方通中间件(如TongWeb作为Servlet容器)通常涉及几个步骤,但需要注意的是,TongWeb本身是一个独立的Java EE应用服务器,而不是像Tomcat那样可以直接嵌入到Spring Boot应用中的中间件。因此,集成通常意味着将Spring Boot应用打包为WAR文件并部署到TongWeb服务器上。

来北欧写代码 6491

=号到底比较的是什么??

先看个程序 [code="java"] package com.test.one; public class one { private String name; private int id; @Override public int hashCode() { System.out.println("#"); return 1; }//重写has...

墨尔本,晴 184

别再只做游戏了!用虚幻引擎5(UE5)给你的工厂车间做个数字双胞胎(附数据对接教程)

本文详细介绍了如何利用虚幻引擎5(UE5)构建工业数字孪生系统,实现工厂车间的智能可视化。通过UE5的高质量渲染和实时数据处理能力,结合OPC UA和MQTT协议,打造高效的数据对接方案,提升异常识别和设备管理效率。文章还分享了模型优化、可视化设计及典型工业场景的实战案例,助力企业迈向工业4.0。

weixin_33738555的博客 206

对CryptoDriver里密钥格式定义的探索(1)

一入网络安全才发现深似海,传统汽车MCU码农转型之路异常艰难。在CP AUTOSAR中的CryptoDriver SWS对密钥格式的需求来源于RFC,其中要求了RSA、ECC、SHE等key material的格式。再往下看,我就有些迷糊了,例如关于RSA Private Key的OCTEE STRING格式根据IETF RFC8017,Public Key又得根据RFC5280,完全不得其解。所以今天先从生成密钥对,并对其进行解析开始,一步一步拆解。

认真搞搞汽车MCU 527

Java学习笔记(疯狂Java讲义第三版)——==和equals

==号和equlas() 等号“==”和equals()的作用是用来判断两个数据是否相等,因为Java语言分为基本数据类型和引用数据类型。所以Java语言中对于数据的比较有以下三种情况。 1.基础数据类型的数据和基础数据类型数据的比较 2.引用数据类型的数据和基础数据类型数据的比较 3.引用数据类型的数据和引用数据类型数据的比较 等号“==”的作用是判断两个数据的数值是否相等。——通过数值来判断来...

weixin_45359980的博客 245

无实习经验?IT应届生简历封神思路:把校园经历写成offer收割机

摘要: IT应届生无实习经历如何打造竞争力简历?本文揭秘“无实习简历封神指南”,通过四大步骤将校园经历转化为HR认可的硬核技能: 素材挖掘:课程设计、个人项目、社团活动、竞赛证书都是隐藏的“实战经验”,用STAR法则细化成果。 技能转化:匹配岗位JD关键词,用“动词+量化结果”包装经历(如“优化查询效率30%”)。 避坑指南:避免流水账、夸大技能或堆砌无关经历,聚焦技术能力与岗位需求。 核心逻辑:HR看重潜力而非经验,用校园经历证明学习能力、问题解决能力和技术落地能力。 无实习≠无竞争力,学会“翻译”经历,

通俗易懂学IT 423

java:String使用equals和==比较的区别

"=="操作符的作用 1、用于基本数据类型的比较 2、判断引用是否指向堆内存的同一块地址。 equals所在位置: 在Object类当中,而Object是所有类的父类,包含在jdk里面,但并不适合绝大多数场景,通常需要重写 public boolean equals(Object obj) { return (this == obj); } equals的作...

越来越好ing的博客 6万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java中==和equals的区别

==操作符与equals方法的区别

骑个小蜗牛的博客 4万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java中==和equals()的区别

==和equals()最大的区别是:一个是运算符,一个是方法。 ==:如果比较的对象是基本数据类型,则比较数值是否相等;如果比较的是引用数据类型,则比较的是对象的地址是否相等。 equals():用来比较两个对象的内容是否相等。 注意: equals方法不能用于基本数据类型的变量,如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址。 ...

应无所住而生其心 3万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java中==号与equals()方法的区别

==号和equals()方法都是比较是否相等的方法,那它们有什么区别和联系呢? 首先,==号在比较基本数据类型时比较的是值,而用==号比较两个对象时比较的是两个对象的地址值:int x = 10; int y = 10; String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(x ==

StriverLi的博客 6万+

【Java】==和equals的区别

哈希表允许哈希冲突(即不同的对象具有相同的哈希值),并通过链表或红黑树等机制处理冲突。都用于比较对象,但它们的行为和用途有显著的区别。不同,哈希表可能会将它们存储在不同的位置,导致查找失败或行为异常。不同,哈希表会将它们存储在不同的位置,导致查找失败。时,建议将常量或已知非空的对象放在前面。:比较对象的内容(默认比较引用,可重写)。计算对象的哈希值,确定存储位置(桶)。类中定义的方法,用于比较两个对象的。:比较基本数据类型的值或对象的引用。(即内存地址),而不是对象的内容。比较对象内容,找到匹配的对象。

Eurekame2000的博客 2982

==和equals的比较

=(比如intchar等):比较的是是否一样。5 == 5是true,因为值相同。(比如String, 自定义对象等):比较的是是否一样。比如:两个String对象,即使内容相同,如果内存地址不同,==也会返回false。==是比较“是不是同一个东西”。

完全体 773

Java基础之 == 、equals和hashCode

== 、equals和hashCode知识点梳理。

孙小鸿的博客 905

Java 中 Equals和==的区别

在谈论equals和==的区别前,我们先简单介绍一下JVM中内存分配的问题。 在JVM中 内存分为栈内存和堆内存。二者有什么区别呢? 当我们创建一个对象(new Object)时,就会调用它的构造函数来开辟空间,将对象数据存储到堆内存中,与此同时在栈内存中生成对应的引用,当我们在后续代码中调用的时候用的都是栈内存中的引用,还需注意的一点,基本数据类型是存储在栈内存中。有了一定的了解 我们来看E

tcytcy123的博客 4万+

java字符串比较到底应该用==还是equals

当用new String(“aaaa”)对字符串做定义时,==会返回false,equals可以返回正常结果。 比如 System.out.println("a" == "a"); //true System.out.println("a".equals("a")); //true System.out.println("a".equals(new String("a")));

nayi_224的博客 6889

Java基础之——equals和==的区别和联系

本文介绍了Java中equals和==的区别与联系。作者星河以通俗易懂的语言解释了两者的使用场景:基本数据类型只能用==比较值,引用数据类型用==比较内存地址。而equals方法在Object类中默认比较地址,但在String等类中被重写为比较内容。文章强调,若不重写equals,其效果等同于==;重写后则可自定义比较规则。全文用大白话讲解技术概念,旨在帮助读者轻松理解这一Java基础知识。

曹举的个人博客 931

关于Java中equals和==的介绍

本文深入解析了Java中==和equals()的区别与使用场景。==比较基本类型的值或引用类型的地址,而equals()比较对象逻辑内容。文章通过实际案例揭示了自动装箱缓存、字符串常量池等陷阱,并强调重写equals()必须满足自反性、对称性等规则,且需同时重写hashCode()。特别指出Java 14的record类型自动生成安全的equals方法,建议优先用于数据类。最后总结:==适合引用比较,equals()用于对象内容比较,record是更安全的选择。

weixin_50055999的博客 951

Java ==和Equals方法的比较

【前言】 最近抽时间将Java基础又进行了学习,经过这段时间发现将许多之前自己模糊的地方,又清晰了许多,这次主要为大家分享一下对==和Equals重新认识; 【比一比】 1、Java中分为基本类型和对象类型两种; 2、对于基本类型来说equals和==都只是判断的是值是否相同; 3、对于对象类型分两种情况: ...

通往精英的成长之路 1万+

Java基础 ==和equals的区别

一、"=="和equals的区别 1、首先,equal和最根本的区别在于equal是一个方法,而"==“是一个运算符。 2、一般来说,运算符比较的是在内存中的物理地址,.equal()比较的是哈希算法值是否相等(即hashcode),且基本数据类型只能用”==“来进行比较。如果比较的双方没有哈希值,那么此时”==“和equal()比较的都是物理地址,可以互相替换(事实上在object类中equal...

Water.you的博客 1623
上一篇: Hibernate是怎么工作的——Hibernate的工作流程
下一篇: extjs表格单元双击弹窗编辑grid和form互相传值
冷静BB
博客等级 码龄12年 298粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值