public class Exam {
public int xuefen;
public Exam(int xuefen){
this.xuefen=xuefen;
}
public boolean test(Object obj){
if(this==obj){
return true;
}
if(obj instanceof Exam){
Exam e = (Exam)obj;
return this.xuefen==e.xuefen;
}
return false;
}
//创建一个主函数来测试==与equals的区别,
public static void main(String[]args){
Exam a1=new Exam(80);
Exam a2=new Exam(80);
Exam a3=a2;
int a4=80;
int a5=80;
Integer a6=80;
Integer a7=80;
Integer a8=new Integer(80);
Integer a9=new Integer(80);
System.out.println(a1==a2);
System.out.println(a1.equals(a2));
System.out.println(a1.equals(a3));
System.out.println("-----------------------------------------------");
System.out.println(a4==a5);
System.out.println(a6==a7);
System.out.println(a4==a6);
System.out.println(a8==a7);
System.out.println(a8==a4);
System.out.println(a8==a9);
System.out.println("-----------------------------------------------");
System.out.println(a6.equals(a7));
System.out.println(a8.equals(a9));
System.out.println(a8.equals(a7));
System.out.println(a8.equals(a4));
}
}
==:是比较两个数据是否相等,比较的是变量的内存地址是否相等。
equals:
1.equals是object类提供的一个比较方法,用来比较两个对象是否相等。
2.在调用object类中的equals方法时比较的也是两个变量的内存地址是否相等。(和==用法一样)
3.在调用其他类中的equals方法时,判断两个变量是否相等取决于这个类是如何重写equals方法的。
列如:在Integer类中equals是比较两个值是否相等。
基本类型和对应的类类型在进行运算的时候,类类型的数据会自动的拆箱。
拆箱:将对象中的数据自动转换成基本类型
装箱:将基本类型的数据包装成引用类型
版权声明:本文为iteye_71原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。