Java面试题
两个不同的对象值相同,但却可能有不同的hash code,这句话对不?
正确。可以自己写个代码块看下。
public class TestHashCode {
public static void main(String[] args) {
// TODO Auto-generated method stub
Worker s1 = new Worker("z", 11);
Worker s2 = new Worker("z", 11);
System.out.println(s1.equals(s2));
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
}
}
class Worker {
String name ;
int age;
public Worker(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Worker other = (Worker) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
运行结果: