Aks*_*sal -5 java string overriding 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 方法的输出也会保持不变。
如果它确实覆盖了,为什么需要它?
String覆盖equals. 简单的测试,
String a = "a";
String b = new String("a");
System.out.println(a == b); // <-- false
System.out.println(a.equals(b)); // <-- true
Run Code Online (Sandbox Code Playgroud)
QED。