equals和==的区别

  1. 首先要了解到地址和内容的区别,在计算机内存管理中,是通过地址来查找内容的。举个例子,计算机中的地址好比现实中的家庭地址,而内容相当于家里的某个人,当我们想要查找某个变量的内容时,首先通过地址找到变量的存储位置,然后再从内存中取出内容比较。

  1. 对于重写了equals方法的类库(String, Integer等),== 判断两个对象是否指向同一个引用,比较的是堆内存中的地址;而equals出了比较地址还比较“内容”是否一致。

  2. 对于只是简单继承Object类equals方法的类库,equals和==的作用是相同的,因为在Object类中equals方法只是用==来进行判断,如果地址相同则返回true

  3. ==可以用来比较基本类型和引用类型,而equals只能用于引用类型的比较。

equals和==的区别