面试题:下面程序输出结果?
package com.wlkj.test;
public class EqualTest {
public static void main(String[] args) {
StringBuffer str = new StringBuffer("");
if(str.equals("")){
System.out.println("相等");
}else{
System.out.println("不相等");
}
}
}
结果输出:不相等。
注意点:
两个不同类型的对象调用equals方法,如果equals方法没有被重写,那么调用object的==,永远不会相等;如果equals方法被重写,而且含有instanceof逻辑,那么还是不会相等。
解决方法:应该改成str.toString()