面试题:下面程序输出结果?

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("不相等");
        }
    }
}

结果输出:不相等。

JAVA中两个不同对象的equals方法使用注意点_Java 对象equals方法  相等

注意点:

两个不同类型的对象调用equals方法,如果equals方法没有被重写,那么调用object的==,永远不会相等;如果equals方法被重写,而且含有instanceof逻辑,那么还是不会相等。

解决方法:应该改成str.toString()