1/4
1、String str1=new String("apple");
String str2=new String("apple");
现在有两个Boolean型表达式:
①str1==str2;
②str1.equals(str2);
2/4
2、上述例子的正确值是
①false
②true
3/4
3、结果解析:
==比较的是两个对象的地址
equals比较的是两个对象的内容
4/4
4
如果一个类没有自己定义equals方法,那么它将继承Object类的equals方法,Object类的equals方法的实现代码如下:
boolean equals(Object o){
return this==o;
}
这说明,如果一个类没有自己定义equals方法,它默认的equals方法(从Object 类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals方法,由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。
注意事项
注意,我们平常使用的字符串的比较都是使用equals进行的
==两边为引用数据类型时:当==两边为引用数据类型时,==判断的是引用数据类型的对象的内存地址是否一样,如果==比较的内存地址一样表示==两边是同一个对象,否则==两边不是同一个对象。
网友评论