假设我创建了两个不同的类:User和Admin
User user1 = new User();
User user2 = new User();
user1和user2的hashcode值一定不一样吗
Admin admin1 = new Admin();
user1和admin1的hashcode值一定不一样吗
User user1 = new User();
User user2 = new User();
user1和user2的hashcode值一定不一样吗
Admin admin1 = new Admin();
user1和admin1的hashcode值一定不一样吗
User user2 = new User("李四");
这种情况下应该尽量保证 user1 和 user2 的 hashcode 不一致,但是:User user1 = new User("张三");
User user2 = new User("张三");
这种情况下应该尽量保证 user1 和 user2 的 hashcode 相同。
这就看你怎么重写hashCode的,有什么东西不一样?如果你设置的属性都一样的话,真的没法判断了,只能用(==)比较内存地址来判断了(如果没有重写equals方法的话,用缺省的equals方法就是调用==比较内存地址了)
String s1 = "abc";
String s2 = new String("abc");
System.out.println(s1.hashCode() == s2.hashCode());
System.out.println(s1 == s2); //用内存地址来判断不同
就算算出是相同位置也会再分配
so 一样不一样要看算法,总之不确定