(个人一点见解:
1、当为包装类型时,比如Integer类型的变量,那么它调用equals函数时,必须也是Integer包装类或者它的拆箱类型int才能为true,否则就算值都一样也是false,如果是==那么是比较的是值,基本类型中还是包装类型,只要值相同就是true,比如Integer和long型,或者double都可以直接比较值,(Double和Integer这种都是包装类型的不可以用==,编译爆红,只能用equals)
2、当为String类型时,equals比较的是字符串的值,==比较的是地址,下图解析)