社区
Java SE
帖子详情
一直对JAVA中的compare、equal和==比较混淆,求教高手总结一下!
stu312
2011-11-16 04:14:23
compare、equal和==在比较基本数据类型和引用数据类型时有什么特殊意思
...全文
333
5
打赏
收藏
一直对JAVA中的compare、equal和==比较混淆,求教高手总结一下!
compare、equal和==在比较基本数据类型和引用数据类型时有什么特殊意思
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
stu312
2011-11-24
打赏
举报
回复
我们老师说,==比较两方面,比较内容和内存地址是否相等,
比较基本数据类型时,因为有池的存在,一般就是看内容相等就行
比较引用数据类型时,用到new,即开辟新的内存空间,所以即使内容相等,但还是要看它的内存地址
jlu_lamp_lamp
2011-11-16
打赏
举报
回复
简明地说就是:
==:如果是基本类型就是比较数值(基本类型就是用这个),如果是引用类型就是比较地址(即是否为同一个对象)
equals :当为引用类型的时候比较对象的值是否相等(一般比较是不是一样就是用这个的了)
compare:也是比较,数值按大小,其它按字母顺序,如a.compare(b),根据大小或字母先后顺序,返回1,0,-1。0的时候就是相同或相等
smst1987
2011-11-16
打赏
举报
回复
== 比较基本数据类型的值(字符串除外)
equals 比较两个对象时使用,如果不重载,默认是只有自己和自己比是正确的。
如果重载equals,就有很多情况要注意了
比如,要重载hashcode,equals如果true,那么hashcode要相同
还有equals重载要遵守自反,传递,一致等约束条件,详细你可以查一下
compare,需要继承Comparable接口,对于一些支持排序的容器,可以很方便的使用sort来排序,compareTo方法的实现注意事项和equals一致,也要遵守这些约束条件,不然会发生不可预料的错误。
还有,有些容器的contains实现,用的不是equals返回true,而是compareTo返回0,重载或实现这俩个方法都需要注意。
funfenffun
2011-11-16
打赏
举报
回复
compare,equals关键就是看对象有没有重载compare,equals方法
比如说String重载了equals方法,所以String的equals就是可以比较内容的,而不是比较地址的
小赖赖
2011-11-16
打赏
举报
回复
== 比较基本数据类型的值(字符串除外)或比较引用数据类型的引用
compare,equals 基本数据类型中没有 引用数据类型以引用对象的compare,equals方法为准
c#
中
字符串
比较
,==,!=,
Compare
,
Equal
s的区别
我在
比较
字符串时,都是使用 == 和 != 运算符,但今天发现c#关于字符串
比较
功能很多。 除了以上的,还有
Compare
,
Equal
s。 有什么区别? 首先说== 和 !=,它
比较
的是字符串的值。 本质上是对
Equal
s方法一部分的重载,微软封装好的,在内部他已经对 = = 操作符进行了重写。 string a="abc"; string b="abcd" 为什么说是对
Equal
s方法一部分...
关于
Java
中
equal
函数和==的一些区别
equal
函数
比较
的到底是什么,很明显是
比较
的值,但是什么值?与==
比较
的堆
中
的内存地址不同,其
比较
的是对象的值,包括各个属性的值。我们在重新overriding此方法时首先要判断是否为同一对象,如果是同一对象那么肯定返回为true,如果不是但
比较
的属性相同,那么对象“相等”,否则返回false。
java
中
的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short
JAVA
- 浅谈==与
equal
()的区别
目录 >基础 >基本数据类型 >引用数据类型 >
Java
内存 >区别==和
equal
s() >== >
equal
s() >
总结
>基础 要想区分这两者,我们得先明白什么是基本数据类型和引用数据类型,以及Jav的内存构成 >基本数据类型 这八种数据变量
中
直接存储值。 >引用数据类型 引用数据类型非常多,大致包括: 类、 接口类型、 数组类型、 枚举类型、 注解类型、 字符串型 例如,String类型就是引用类.
Java
中
的浮点数
比较
==
equal
s 和
compare
前几天有位同学问我一个问题,为什么float和double不能直接用==
比较
? 例如: [
java
] view plain copy System.out.println(0.1d == 0.1f); 结果会是flase 当时我只是简单的回答,因为精度丢失,
比较
结果是不对的。 那么,到底为什么不对呢? 此文略作整理记录。 类型升级(type promotion) ...
equal
与==的区别
equal
与== 1.最大的区别是,==是运算符,
equal
是方法 简述几种情况下的
equal
与==
java
基本类型
比较
包装类型
比较
String类型
比较
对象 1.
java
基本类型(short,int,long,byte,char,float,double,boolean)
比较
基本类型,只能用==,不能用
equal
,这里的==
比较
的是两个变量的值 2.
比较
包装类型 ==比...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章