==
到目前为止,我一直在我的程序中使用运算符来比较我的所有字符串.但是,我遇到了一个错误,将其中一个更改为了.equals()
,并修复了该错误.
是==
坏?什么时候应该不应该使用它?有什么不同?
问这个问题的原因是Java中的String是实习的所以
String s1 = "Hello";
String s2 = "Hello";
Run Code Online (Sandbox Code Playgroud)
s1 和 s2 都指向内存中的同一个对象。不会创建两个不同的对象。
s1.equals(s2)
应该返回 true 并且确实如此。现在在java文档中它说String类覆盖了对象类的equals方法。但真的吗?
因为即使 String 类没有覆盖 Object.equals()
,equals 方法的输出也会保持不变。
如果它确实覆盖了,为什么需要它?