equals和== 的区别

22 阅读1分钟

equals和== 的区别

==

==比较的是变量(栈)内存中存放的对象的内存地址(堆),用来判断两个对象的地址是否相同,就是说是否指向了一个对象的地址。正真正来说就是指针操作。

  1. 比较的两个类型必须相同,否则会报错,当然可以是父子之间,才可以通过编译
  2. 主要就是比较两端的操作数是否是同一个对象
  3. 如果是具体的基本数据类型比较就是他们的值的大小,相等就是true;

equals

equals是用来比较两个对象的内容是否一样,主要所有的类都继承就是java.lang.Object类里面的,所以可以用于所有的对象类型,但是不可以用于基本数据类型。而且这个方法的底层用的也是== 来比较的,其实也就是比较两个对象的地址是否一样