==是一个判断是否相等的符号,equals()是判断内容的函数。
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true,否则false。
而在比较引用时,如果引用指向内存中的同一对象,结果为true,否则false。
在比较字符型数据时,==比较的是内存中的地址,是对象的句柄,而equals()比较的是地址内的内容,比较的是对象。
基本类型进行值比较时用 ==
对象类型进行值比较时用 equals
写equals方法时:
1、自反性判断 if(this==obj) return true;
2、判断是否为null if(obj==null) return false;
3、判断类型是否兼容 if(!(obj instanceof 类)) return false; 或 if(this.getClass()!=obj.getClass()) return false;
4、强制类型转换,判断每一个属性:简单类型用==,对象类型用.equals |