xiaro115

首先,我们只需要看Object中的equals 方法写的是啥

 

很显然,就是一句话,“==” 与 equals方法作用完全一致。

都是用来比较在内存的首地址,即用来比较两个引用变量是否指向同一个对象。

那么为什么网上那么多教程都写的那么多呢,还区分什么String类型StringBuffer对象,其他对象。

我们继续去看源码,String类的equals 方法写的啥

 

 

与Object的equals方法完全不一样,String类重写了Object的equals方法,再看内容就是两部分

1、还是“==”;

2、转为String类后字符数组完全相等,也就是说字符串内容完全相同。

因为重写了equals方法,所以String类的“==” 与 equals 就有区别了,所以equals 的比较就变成了:比较要么完全相等,要么字符串内容一致。

 

以上内容总结两句话:

1、“==” 与 equals方法作用完全一致,都是用来比较在内存的首地址,即用来比较两个引用变量是否指向同一个对象。

2、String类由于重写了equals方法,所以String类的equals 的比较就变成了:比较要么完全相等,要么字符串内容一致。

 

相关文章:

  • 2021-07-25
  • 2021-12-29
  • 2021-09-17
  • 2022-01-31
  • 2021-10-22
  • 2021-10-25
猜你喜欢
  • 2021-06-06
  • 2022-12-23
  • 2021-04-07
  • 2021-04-26
  • 2021-12-01
  • 2021-10-16
  • 2021-10-18
相关资源
相似解决方案