1.==用来比较两个变量的值是否相等即对应内存中所存储的数值是否相同。用于比较两个基本类型的数据或引用变量是否相等。
如果一个变量指向的数据是对象类型,则涉及两块内存,变量占用的栈内存和对象本身占用的堆内存。
比较两个变量是否指向同一个对象,要看这两个变量所对应的内存中的数值是否相等,用==比较。
2.equals方法用于比较两个独立对象的内容是否相同。
String a = new String("foo");
String b = new String("foo");
a==b返回false,a.equals(b)返回true。
字符串的比较基本上都是equals方法。为了避免报空指针异常,将变量作为参数,比如if("xxx".equals(usrname));
3.一个类没有自定义equals方法则继承Object类的equals方法,实现代码:
boolean equals(Object o) {
return this == o;
}
即从Object类继承的默认equals方法使用==操作符。
如果希望比较自定义的类创建的两个实例对象内容是否相同,必须覆盖equals方法。