一直对JAVA中的compare、equal和==比较混淆,求教高手总结一下! compare、equal和==在比较基本数据类型和引用数据类型时有什么特殊意思 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 == 比较基本数据类型的值(字符串除外)或比较引用数据类型的引用compare,equals 基本数据类型中没有 引用数据类型以引用对象的compare,equals方法为准 compare,equals关键就是看对象有没有重载compare,equals方法比如说String重载了equals方法,所以String的equals就是可以比较内容的,而不是比较地址的 == 比较基本数据类型的值(字符串除外)equals 比较两个对象时使用,如果不重载,默认是只有自己和自己比是正确的。如果重载equals,就有很多情况要注意了比如,要重载hashcode,equals如果true,那么hashcode要相同还有equals重载要遵守自反,传递,一致等约束条件,详细你可以查一下compare,需要继承Comparable接口,对于一些支持排序的容器,可以很方便的使用sort来排序,compareTo方法的实现注意事项和equals一致,也要遵守这些约束条件,不然会发生不可预料的错误。还有,有些容器的contains实现,用的不是equals返回true,而是compareTo返回0,重载或实现这俩个方法都需要注意。 简明地说就是:==:如果是基本类型就是比较数值(基本类型就是用这个),如果是引用类型就是比较地址(即是否为同一个对象)equals :当为引用类型的时候比较对象的值是否相等(一般比较是不是一样就是用这个的了)compare:也是比较,数值按大小,其它按字母顺序,如a.compare(b),根据大小或字母先后顺序,返回1,0,-1。0的时候就是相同或相等 我们老师说,==比较两方面,比较内容和内存地址是否相等,比较基本数据类型时,因为有池的存在,一般就是看内容相等就行比较引用数据类型时,用到new,即开辟新的内存空间,所以即使内容相等,但还是要看它的内存地址 SE做学生成绩管理系统的问题 个人想学学httpClient java 断点续传文件到远程服务器 意见简单的继承问题(菜鸟问题) 关于JAR打包的简单问题 关于麻将排列问题 用哪儿个容器的问题 连接db2数据库报错:打开套接字时出错。 小弟想问大家在REDHAT7.0上哪种JAVA编程工具是最好的!!!!!!!!! 请教JAVA高手,算法问题! smpp协议问题 ArrayList问题
compare,equals 基本数据类型中没有 引用数据类型以引用对象的compare,equals方法为准
compare,equals关键就是看对象有没有重载compare,equals方法
比如说String重载了equals方法,所以String的equals就是可以比较内容的,而不是比较地址的
如果重载equals,就有很多情况要注意了
比如,要重载hashcode,equals如果true,那么hashcode要相同
还有equals重载要遵守自反,传递,一致等约束条件,详细你可以查一下compare,需要继承Comparable接口,对于一些支持排序的容器,可以很方便的使用sort来排序,compareTo方法的实现注意事项和equals一致,也要遵守这些约束条件,不然会发生不可预料的错误。还有,有些容器的contains实现,用的不是equals返回true,而是compareTo返回0,重载或实现这俩个方法都需要注意。
equals :当为引用类型的时候比较对象的值是否相等(一般比较是不是一样就是用这个的了)
compare:也是比较,数值按大小,其它按字母顺序,如a.compare(b),根据大小或字母先后顺序,返回1,0,-1。0的时候就是相同或相等
比较基本数据类型时,因为有池的存在,一般就是看内容相等就行
比较引用数据类型时,用到new,即开辟新的内存空间,所以即使内容相等,但还是要看它的内存地址