首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
请你说说==与equals()的区别
[问答题]
请你说说==与equals()的区别
添加笔记
求解答(0)
邀请回答
收藏(329)
分享
纠错
143个回答
添加回答
271
十七_
== 比较基本数据类型时,比较的是两个数值是否相等; 比较引用类型是,比较的是对象的内存地址是否相等。 equals() 没有重写时,Object默认以==来实现,即比较两个对象的内存地址是否相等; 重写以后,按照对象的内容进行比较
发表于 2022-04-26 15:52:31
回复(10)
44
Anna_Y
值类型是存储在内存中的堆栈,而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
==比较的是2个对象的地址,而equals比较的是2个对象的内容。
显然,当equals为true时,==不一定为true;
发表于 2022-04-26 18:49:27
回复(0)
16
测试失败
==比较基本数据类型时,比较的是数值,比较引用类型时,比较的是引用的内存地址。对象的equals重写前默认是==进行比较,重写后比较的是引用的值是否相等
发表于 2022-05-03 13:50:28
回复(0)
11
牛客540183237号
==既可以比较基本类型也可以比较引用类型,基本类型比较的是值,引用类型比较的是地址;equals是Object 的方法,比较的是引用类型,如果equals没有被重写,和==是一样的,比较地址,如果被复写,具体情况具体分析。例如String,比较的是值。
编辑于 2023-05-14 23:18:51
回复(0)
9
梦崽
== 是一个运算符。equals则是string对象的方法, 1、基本数据类型比较 ==和Equals都比较两个值是否相等。相等为true 否则为false; 2、引用对象比较 ==和Equals都是比较栈内存中的地址是否相等 。相等为true 否则为false; 需要注意的是: 1、string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 Equals 这两者比较的都是字符串是否相同; 2、当你创建两个string对象时,内存中的地址是不相同的,你可以赋相同的值。 所以字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的; 3、基本数据类型比较(string 除外) == 和 Equals 两者都是比较值
发表于 2022-08-13 17:25:27
回复(1)
8
阐禅
==:在比较的是值类型的时候,比较的是它们的大小是否相同,在比较引用类型的时候,比较的是它们的内存地址是否相同。 equals:在比较值类型的时候比较的是它们的大小,在比较引用类型的时候,如果equals方法重写过,那么看定义比较的是什么,例如String比较字符串的时候比较的是它们的内容是否相同,如果没有重写过的话,引用类型比较的时候还是比较的是内存地址。
发表于 2022-05-07 16:32:41
回复(0)
4
牛客新星
基本数据类型用==比较的是数值是否相等, 引用数据类型用==比较的是引用地址是否相等, 而每个类的equal重写前比较的也是引用地址,所以需要手动重新来实现比较每个类的数据。
发表于 2022-04-28 14:31:35
回复(0)
2
牛客358662076号
==在比较基本类型时比较的是值是否相等,再比较引用类型时比较的是地址是否相同,在方法中如果没有重写equals()方法则默认用==比较两个对象的地址是否相等,重写后按照内容进行比较。
发表于 2022-08-06 13:53:05
回复(0)
2
大哥们不要卷我
==在比较基本数据类型的时候,比较的是两个数值是否相等,比较引用数据类型的时候,比较的是对象的内存地址是否相等。而equals没有在重写的时候,比较的是两个对象的内存地址是否相等,重写以后按照对象的内容进行比较。
发表于 2022-06-09 17:29:25
回复(0)
2
牛客793464225号
对于基本数据类型“==”比较的是字面值,而对于引用数据类型来说“==”比较的是对应的内存地址。当一个创建的新对象,没有重写equals方法时,此时equals()方法和“==”的功能一样。当重写过equals方法后,此时比较的就是对象中的内容。
发表于 2022-05-28 14:30:31
回复(0)
2
你看起来很好吃0
重写EQUALS()方法时,则判断的是内容相不相等
发表于 2022-05-07 21:50:41
回复(0)
2
不太行要学习
111
编辑于 2022-04-27 14:02:03
回复(0)
1
Penalize
答:==比较的是值,当比较基础数据类型时,比较的是数值是否相等,当比较引用类型时,比较的是地址是否相等。而equals()比较的是对象中的内容是否相等。
发表于 2024-03-27 20:20:13
回复(0)
1
求你们别卷了的小章鱼很有力量
==判断的是等号左右两边的值的地址是否相等,而equals()判断的是值是否相等。
发表于 2023-11-11 16:21:10
回复(0)
1
廟文
1、== 对比的是值是否相等,基本数据类型是变量值,引用类型是对象地址; 2、equals默认会用 == ,但通常会重写;
发表于 2023-02-12 13:41:27
回复(0)
1
自信的大白菜
== 比较基本数据类型时,比较的是两个数值是否相等; 比较引用类型是,比较的是对象的内存地址是否相等。
equals() 没有重写时,Object默认以==来实现,即比较两个对象的内存地址是否相等; 重写以后,按照对象的内容进行比较
发表于 2023-02-02 18:01:08
回复(0)
1
孙宇
在Java中,对于基本数据类型是在栈开辟空间直接存值,对于引用数据类型在栈存储的是指向堆内存中的地址。 ==比较基本数据类型/引用数据类型比较的都是值是否相同,基本数据类型比的是栈中存的值,引用类型比的也是栈中存值,不过该值非彼值,该值是指向堆内存中的地址。 equals是Object中的方法,默认实现和==一样,不过往往都会重写equals方法,去比较堆内存中的内容,也就是两个对象的内容
发表于 2023-02-01 20:13:16
回复(0)
1
桃桃爱学习
1.==:比较基本数据类型:比较两个变量的值是否相同 比较引用类型:比较两个对象的地址值是否相同,即两个引用是否指向同一个地址值。 2.equals:如果类中重写了equals方法,比较内容是否相同(内容相同就相同)。 String、Date、File、包装类都重写了Object类的equals方法。 如果类中没有重写equals方法,比较地址是否相同(地址相同才为true)。
发表于 2022-11-01 10:44:56
回复(0)
1
牛客70639659号
==是比较基本数据类型,比较两个值是否相等。如果比较的是引用数据类型,一般是比较地址是否相等,如果是在object里面也是通过==去比较的,如果重写后是根据里里面的值去比较是否相等
发表于 2022-10-16 22:24:45
回复(0)
0
肿么肥四.
如果是基本数据类型,==比较的是值 如果是引用数据类型,==比较的是内存地址值,equals比较的才是值
编辑于 2024-04-16 09:55:48
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Java
上传者:
real19931
难度:
143条回答
329收藏
2259浏览
热门推荐
相关试题
假定一个待哈希存储的线性表为(32...
哈希
评论
(1)
5.下列判断正确的是( )
资料分析
言语理解与表达
资料分析
评论
(1)
已知a
40
=...
京东
职能
2019
财务
保险
评论
(1)
《拳皇97》最后BOSS是谁?
游戏常识
评论
(1)
《魔兽世界》中,下列不属于玩家可以...
游戏常识
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题