这个问题要分情况来讨论
值类型:equals与==,都是比较值是否相同
引用类型:==比较的是两个对象的地址是否相同;equals()继承于object类的equals()方法,如果调用类没有重写equals()方法的实现,那么比较的依旧是两个对象的地址是否相同。如果重写了equals()的实现,那么就按照重写的带来来实现。例如string类就重写object的equals()方法的实现,所以比较的就是内容是否相同,而不是地址是否相同。
"==" : 操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
"equals" : 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
==是用来比较对象的值是否相等,equals是比较两个对象是否为同一个对象