今天测试Integer的时候,突然突发奇想,Integer integer = new Integer(100);Integer integer1 = 100; integer == integer1的结果为true,那么String会怎么样呢???

为什么两个String类型的数据,它们的hashcode()相同,但是==的结果为false

我心想,a,b两者的地址不一样,两者打印出来的hashcode结果一定不一样
但是结果和我想得总是不一样,
为什么两个String类型的数据,它们的hashcode()相同,但是==的结果为false
两者打印出来的hashcode()完全一致,于是我再次测试应该肯定a == b,毕竟两者的hashcode相同,那么两者的内存地址应该是一样的,但是结果总是和我想的背道而驰。
为什么两个String类型的数据,它们的hashcode()相同,但是==的结果为false
为什么两个String类型的数据,它们的hashcode()相同,但是==的结果为false
????
为什么???,为什么会是false。爱学习的楼主总是打破砂锅问到底,看源码
为什么两个String类型的数据,它们的hashcode()相同,但是==的结果为false
原来如此,String重写了hashcode()方法,String类型的hash值是根据字符串的内容来决定的,并不是内存地址,只要两个String类型的字符串内容一致,那么两者的hashcode就相同。
希望大家以后不要向楼主一样。

相关文章:

  • 2021-04-14
  • 2022-12-23
  • 2021-09-30
  • 2021-10-17
  • 2021-09-16
猜你喜欢
  • 2021-09-04
  • 2021-06-16
  • 2021-07-25
  • 2021-06-02
  • 2022-12-23
  • 2021-06-05
相关资源
相似解决方案