==和equals()的区别
Posted 143401010116
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了==和equals()的区别相关的知识,希望对你有一定的参考价值。
==是什么?
==在JAVA里面是一个二元操作符,用于比较原生类型(boolean,int,char,float等),也可以用于比较对象。
equals()是什么?
equals()方法定义在Object类里,是用来比较两个对象相等性,开发者可以根据需要重写。
==和equals()的区别
当都用于比较对象时,==用于比较两个对象的引用地址,而默认的equals()则比较的是对象的值,至于重写之后的就看具体实现了。下面有两个例子:
例一:
String a =new String("123");
String b =new String("123");
Boolean c = a==b;
System.out.println(c);
c=a.equals(b);
System.out.println(c);
a=b;
c=(a==b);
System.out.println(c);
结果:
false
true
true
例二:
Object o1 = new Object();
Object o2 = new Object();
Boolean c = o1==o2;
System.out.println(c);
c=o1.equals(o2);
System.out.println(c);
o1=o2;
c=o1==o2;
System.out.println(c);
结果:
false
false
true
总结:
1.使用==比较原生类型,使用equals()比较对象。
2.对于两个引用指向相同对象==返回true,equals()看具体实现。
3.字符串的比较用equals()。
以上是关于==和equals()的区别的主要内容,如果未能解决你的问题,请参考以下文章
[转]Java中==和equals的区别,equals和hashCode的区别