栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA中equals和==的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA中equals和==的区别

先说“==”

” 是一个常用运算符,在比较中经常用到,

基本数据类型的用“==”进行比较的时候,看的值是不是相同;忽略数据类型,只看数值,布尔类型的不能和其他基本数据类型进行比较。引用数据类型使用 “==”是比较的内存中的地址值是否一致 基本数据类型的比较:


写出所有的基本数据类型,进行比较,即可。在基本数据类型使用 == “”时候,只是比较了数值是否一样,忽略了类型的不同。 其中要注意char类型的特殊情况,比如:

char a ='A';
int b=65;
System.out.println(a==b);

这个结果其实是 true;因为char类型的A在内存中的ascii码 就是65 ,所以能返回 true;

引用数据类型的比较:

String是一个类,自然就是引用数据类型,但是String可以直接赋值,产生一个对象。当值是一样的时候,返回 true,

String a = "zhangguan";
String b ="zhangguan";
System.out.println(a==b);// true
System.out.println(a.equals(b));//true

String 中 使用 equals() 时候,其实走的方法是String 类自己的重写。
原本equals()方法是Object 类中的方法,String类进行重写之后,在调用equals()时,走的是自己重写的方法,源码如下:

自定义引用数据类型的比较:★★★★★★

声明了一个People类,然后实例化两个对象,使用==进行比较 返回false,因为两个对象在 堆空间中的 地址不一样,所以返回fase;

 People p1 = new People();
 People p2 = new People();
 System.out.println(p1 == p2); //false
关于equals方法:

对于对象的比较,如果你没有对object类中的 equals方法进行重写,那么自然就走 object类中的equals方法,我声明的People类中,并没有对该方法进行重写,所以走父类object中的方法。返回false,比较父类object中的equals方法 比较的也是地址值是否一直:

        People p1 = new People();
        People p2 = new People();
        System.out.println(p1.equals(p2));//false

java源码:

如果你重写了equals的方法,就能自己去定义两个对象是否一直了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785953.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号