什么问题/陷阱,必须重写时,必须考虑equals和hashCode?
使用String s1="java";并String s2= new String("java");
执行这两个操作时创建不同的String对象?我知道如果我使用String s3="java"它使用s1的相同对象但在s2情况下也使用相同的对象吗?如果是这样,为什么StringBuffer sb = new StringBuffer("java");使用不同的对象.因为如果我这样做System.out.println(sb.equals( s1 ));会返回false;
我对equals方法的理解是它比较两个引用是否引用同一个对象,除非我们有重写的equals方法,如果我的理解是错误的,请告诉我.