我是靠谱客的博主 大方小蝴蝶,最近开发中收集的这篇文章主要介绍java中==与equeals的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

==:

==是比较两个变量的值,如果是基本数据类型,那么就是比较的基本数据的大小值

况一:

int a=1;
int b=1;
System.out.println(a==b);
上面代码的图解:



以上图中:==比较的就是上面两个内存块中的值,都是1,所以是true


但是如果存储的是引用类型,其实比较的还是变量本身所存储的值,我们都知道,
变量存储引用类型其实存储的只是引用对象的地址作为值存储到变量中,那么当用==
判断时,比较的就是这两个地址值了,所以说==比的是两个变量所存储的值,

至于这个值是什么类型的,就看放什么了


情况二:

User a = new User();
User b = new User();
System.out.println(a==b);


在上图中,a和b存的就是一个引用对象,在这时判断a==b时,比较的也是a和b所存储的值,

可以看出,a里面存的是0x1234,b里面存放的是0x5874,很明显不相等,所以是false


情况三:

而当使用==比较字符串时:

String a="abcd";
String b="abcd";
System.out.println(a==b);



这时,a和b存储的是同一个常量字符串,地址也一样,所以是true。


情况四:

String a=new String("abcd");
String b=new String("abcd");
System.out.printlnl(a==b);


如果通过创建对象的方式创建字符串,那么流程就会向上图一样,a和b里面所存放的值就不一样了,a和b 比较就是false


equals:

equals是属于Object的方法,在默认实现下其实就是==,也就是说和==是一样的,下图是Object中的默认实现


但是该方法可以被重写,至于被重写后比较的是什么就看实现的逻辑了,在这之中String就是对

equals重写了,String重写的逻辑就是比较字符串内容。下图就是String重写的equals方法






最后

以上就是大方小蝴蝶为你收集整理的java中==与equeals的区别的全部内容,希望文章能够帮你解决java中==与equeals的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部