equals()方法只能比较引用类型,“==”可以比较引用类及基本类型;
举个例子[code]class mytest
{
private int d,m,y;
public mytest(int d,int m,int y)
{
this.d=d;
this.m=m;
this.y=y;
}
}
public class EqualsTest
{
public static void main(String[] args)
{
mytest t1=new mytest(1,1,2011);
mytest t2=new mytest(1,1,2011);
if(t1==t2)
{
System.out.println("t1==t2");
}
else
{
System.out.println("t1!=t2");
}
if(t1.equals(t2))
{
System.out.println("t1 is equals to t2");
}
else
{
System.out.println("t1 is not equals to t2");
}
t2=t1;
if(t1==t2)
{
System.out.println("t1==t2");
}
else
{
System.out.println("t1!=t2");
}
}
}[/code]运行结果:
t1!=t2
t1 is not equals to t2
t1==t2
因为 我们的t1和t2中存储的分别是对象的地址。首地址肯定是不相同的。
执行完了equals()方法之后 t1等于t2
equals()比较的是对象的内容。所以一开始附的初始值 是一样的。 |