==是一种运算符,当==在比较基本数据类型的时候会直接比较那些数据的值是否相等,如果值相等则返回true,否则返回false
当==在比较引用类型的时候,会比较两者在堆中的地址是否相同,相同则返回true,否则返回false
而equals是Object类的一个方法,由于所有得java类都继承了Object类,因此所有的类都拥有equals方法。在没有重写equals方法的情况下,equals方法底层调用的其实也是==,来判断对象是否相等,也就是利用两个对象在对空间中的地址是否相同来判断。不过一般情况下,我们可以通过重写equals方法来实现我们实际的需求。比如,String类和Integer类等类就是通过重写equals方法实现了通过比较值相等,判断两个对象是否相等。
然后由于equals是Object类的一个方法,所以equals不能用于比较基本数据类型。