Java中==与equals()区别【恨你恨到骨头里】
这么长时间了 对Java中==与equals()的区别还不是很明了。今天马上要下班的时候。偶尔翻起了别人的博客 感觉突然有些顿悟了。
下午说说我自己的理解吧
==其实比较的是两个对象的引用。而equals()方法呢 它的标准形式是这样的
public boolean equals(Object obj);
在没有被override的情况下,它和==实现是一致的。
但是他们的区别我像大家也能看出来 就是equals可以被后来者所复写。这样就很灵活了
话不多说 咱们想看看几个程序 toy
public class Example1
{
public static void main(String[] args)
{
String s1=new String("abc");
String s2=new String("abc");
System.out.println("用 == 比较结果");
System.out.println(s1==s2);//false
System.out.println("用equals(Object) 比较结果");
System.out.println(s1.equals(s2));//true
}
}
equals方法 (是String类从它的超类Object中继承的)被用来检测两个对象 是否相等,即两个对象的内容 是否相等。
==用于比较引用和比较基本数据类型 时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
终于明白了吧
下午说说我自己的理解吧
==其实比较的是两个对象的引用。而equals()方法呢 它的标准形式是这样的
public boolean equals(Object obj);
在没有被override的情况下,它和==实现是一致的。
但是他们的区别我像大家也能看出来 就是equals可以被后来者所复写。这样就很灵活了
话不多说 咱们想看看几个程序 toy
public class Example1
{
public static void main(String[] args)
{
String s1=new String("abc");
String s2=new String("abc");
System.out.println("用 == 比较结果");
System.out.println(s1==s2);//false
System.out.println("用equals(Object) 比较结果");
System.out.println(s1.equals(s2));//true
}
}
equals
==用于比较引用和比较基本
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
终于明白了吧
浙公网安备 33010602011771号