java面试题网

普通会员

483

帖子

9

回复

187

积分

楼主
发表于 2018-03-21 17:48:44 | 查看: 5670| 回复: 5

"=="和equals方法究竟有什么区别?

①==比较的是值,equals比较的是地址值 

②一般我们会重写equals让它按照我们的意愿去比较相关属性,而不是单纯的比较地址值。


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/10_1_1.html

您的帖子在2018-03-21 17:52:05被楼上是二百五编辑

普通会员

483

帖子

9

回复

187

积分
沙发
发表于 2018-03-22 18:15:42

equals是用于比较两个实例所指向的内存空间里面的值是否相等;

==用于两个实例是否指向同一内存空间;


普通会员

0

帖子

19

回复

27

积分
板凳
发表于 2019-02-23 20:49:35

==比较的是值,equals比较的是地址值 

②一般我们会重写equals让它按照我们的意愿去比较相关属性,而不是单纯的比较地址值。

我们在实际应用中String和对象 一般用equals 整数一般用int

普通会员

0

帖子

19

回复

27

积分
地板
发表于 2019-02-23 21:40:50
提示: 该作者的回复内容被删除屏蔽

普通会员

0

帖子

19

回复

27

积分
4#
发表于 2019-02-23 21:42:40

== 比较的是两个对象是否相同 比较的时候也会先比较两个变量的类型是不是相同 如果一个String 一个int 编译就不会通过 equals比较的是地址值  就是对象的内容

普通会员

217

帖子

75

回复

160

积分
5#
发表于 2019-04-30 14:49:48
==和equals的区别和联系

“==”是关系运算符,equals()是方法,同时他们的结果都返回布尔值;

“==”使用情况如下:

a) 基本类型,比较的是值

b) 引用类型,比较的是地址

c) 不能比较没有父子关系的两个对象

equals()方法使用如下:

a) 系统类一般已经覆盖了equals(),比较的是内容。

b) 用户自定义类如果没有覆盖equals(),将调用父类的equals (比如是Object),而Object的equals的比较是地址(return (this == obj);)

c) 用户自定义类需要覆盖父类的equals()

注意:Object的==和equals比较的都是地址,作用相同

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018