永发信息网

java怎么比较两个对象是否相等?

答案:9  悬赏:70  手机版
解决时间 2021-03-19 10:07
java怎么比较两个对象是否相等?
最佳答案
一、java中的基本数据类型(int、double、short、long、byte、float、boolean、char)判断是否相等,直接使用"=="就行了,相等返回true,否则,返回false。
二、但是java中的引用类型的对象比较变态,假设有两个引用对象obj1,obj2,
obj1==obj2 判断是obj1,obj2这两个引用变量是否相等,即它们所指向的对象是否为同一个对象。言外之意就是要求两个变量所指内存地址相等的时候,才能返回true,每个对象都有自己的一块内存,因此必须指向同一个对象才返回ture。
三、如果想要自定义两个对象(不是一个对象,即这两个对象分别有自己的一块内存)是否相等的规则,那么必须在对象的类定义中重写equals()方法,如果不重写equals()方法的话,默认的比较方式是比较两个对象是否为同一个对象。
在Java API中,有些类重写了equals()方法,它们的比较规则是:当且仅当该equals方法参数不是 null,两个变量的类型、内容都相同,则比较结果为true。这些类包括:String、Double、Float、Long、Integer、Short、Byte、、Boolean、BigDecimal、BigInteger等等,太多太多了,但是常见的就这些了,具体可以查看API中类的equals()方法,就知道了。
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
全部回答
a.equals(b);
a = b返回true;不等于返回false
一般用equals比较对象值是否相等,==是比较两个对象在内存中的地址值。
Java中的基本数据类型判断是否相等,直接使用"=="就行了,相等返回true,否则,返回false。
java中的引用类型的对象比较:
假设有两个引用对象obj1,obj2,obj1==obj2 判断是obj1,obj2这两个引用变量是否相等,即它们所指向的对象是否为同一个对象。言外之意就是要求两个变量所指内存地址相等的时候,才能返回true,每个对象都有自己的一块内存,因此必须指向同一个对象才返回ture。
java中的基本数据类型判断是否相等,直接使用"=="就行了,相等返回true,否则,返回false。
但是java中的引用类型的对象比较变态,假设有两个引用对象obj1,obj2,
obj1==obj2 判断是obj1,obj2这两个引用变量是否相等,即它们所指向的对象是否为同一个对象。
java中的基本数据类型判断是否相等,直接使用"=="就行了,相等返回true,否则,返回false。
但是java中的引用类型的对象比较变态,假设有两个引用对象obj1,obj2,
obj1==obj2 判断是obj1,obj2这两个引用变量是否相等,即它们所指向的对象是否为同一个对象。言外之意就是要求两个变量所指内存地址相等的时候,才能返回true,每个对象都有自己的一块内存,因此必须指向同一个对象才返回ture。
1.判断两个对象是否是同一个引用对象则用==,"=="比的是地址.因为如果地址相同,则就是同一个对象2.obj1.equals(Object obj2),用来判断两个对象是否相等(前面给出的是相等的情况。如果你要不相等的话:!obj1.equals(Object obj2)就OK了)
一般用equals方法,如果有特别需要一般需要重写类的equals方法
java中的基本数据类型判断是否相等,直接使用"=="就行了,相等返回true,否则,返回false。
但是java中的引用类型的对象比较变态,假设有两个引用对象obj1,obj2,
obj1==obj2 判断是obj1,obj2这两个引用变量是否相等,即它们所指向的对象是否为同一个对象。言外之意就是要求两个变量所指内存地址相等的时候,才能返回true,每个对象都有自己的一块内存,因此必须指向同一个对象才返回ture。
如果想要自定义两个对象(不是一个对象,即这两个对象分别有自己的一块内存)是否相等的规则,那么必须在对象的类定义中重写equals()方法,如果不重写equals()方法的话,默认的比较方式是比较两个对象是否为同一个对象。
在Java API中,有些类重写了equals()方法,它们的比较规则是:当且仅当该equals方法参数不是 null,两个变量的类型、内容都相同,则比较结果为true。这些类包括:String、Double、Float、Long、Integer、Short、Byte、、Boolean、BigDecimal、BigInteger等等,太多太多了,但是常见的就这些了,具体可以查看API中类的equals()方法,就知道了。
重写equals()方法的步骤一般如下:
1、先用“==”判断是否相等。
2、判断equals()方法的参数是否为null,如果为null,则返回false;因为当前对象不可能为null,如果为null,则不能调用其equals()方法,否则抛java.lang.NullPointerException异常。
3、当参数不为null,则如果两个对象的运行时类(通过getClass()获取)不相等,返回false,否则继续判断。
4、判断类的成员是否对应相等。往下就随意发挥了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
珍食惠土菜馆地址在什么地方,想过去办事
叶面长白点(可能是开花)的是什么植物
广安有星巴克吗?
个人网上贷款有哪些申请流程
大石桥市沟沿镇赵家村民委员会地址在什么地方
怎样下载牛津高阶英汉双解词典第八版总的三千
java中List怎么用,说下过程
本来会竖叉的可是练竖叉的时候不小心后面受伤
amoeba是什么意思
305米一轴的轴装的网线用于什么场合?
小青蛙网吧地址在什么地方,想过去办事
吉他G大调所有和弦和C大调的转化
请问从上海飞往深圳的航班往返票最便宜的是多
腾达磁砖在什么地方啊,我要过去处理事情
橄榄油酸度多少适合美容呢?
推荐资讯
word中如何独立页面内容
意外得到一百万合法收入,吓呆了,不想要!(
冬天东北的蔬菜都是哪里运过来的?
想了解一下小学一年级的一些测试材料
有木有类似姐裸吧的吧或网站?
液压提升机属于特种设备吗?
比亚迪F0怎样安装座套
新车5000公里不能开过120迈 吗?超过了有什么
无线路由器设置完后,不能联网一直出现拨号状
tinakathy是什么意思
是硅晶石地砖好还是
微信里转来(一首歌曲唱的全天下人都哭)的歌
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?