==与equals的区别
的有关信息介绍如下:举个简单的例子,说明==与equals的区别
1、String str1=new String("apple");
String str2=new String("apple");
现在有两个Boolean型表达式:
①str1==str2;
②str1.equals(str2);
2、上述例子的正确值是
①false
②true
3、结果解析:
==比较的是两个对象的地址
equals比较的是两个对象的内容
4
如果一个类没有自己定义equals方法,那么它将继承Object类的equals方法,Object类的equals方法的实现代码如下:
boolean equals(Object o){
return this==o;
}
这说明,如果一个类没有自己定义equals方法,它默认的equals方法(从Object 类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals方法,由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。