package test;
/**
* 解答:两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
* 这句话是对的,因为equals是可以覆盖的,所以可以使(x.equals(y) == true),且x,y有不同hash code
*/
public class EqualAndHashCode {
public static void main(String[] args) {
A a1 = new A(1);
A a2 = a1;//new A(1);
boolean flag1 = a1==a2;
System.out.println(a1.equals(a2)+" "+flag1);
System.out.println(a1.hashCode());
System.out.println(a2.hashCode());
B b1 = new B(1);
B b2 = new B(1);
boolean flag2 = b1==b2;
System.out.println(b1.equals(b2)+" "+flag2);
System.out.println(b1.hashCode());
System.out.println(b2.hashCode());
}
}
class A{
int a;
public A(int i){
this.a = i;
}
}
class B{
int b;
public B(int i){
this.b = i;
}
@Override
public boolean equals(Object obj) {
if(this.b==((B)obj).b)return true;
else return false;
}
}
不用equal而用“==”才不对。
分享到:
相关推荐
两个对象值相同(x.equals(y) ==true),但却可有不同的hash code,这句话对不对?(等级1级) 15. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递...
2. 两个对象值相同(x.equals(y) == true),但却可有不同的 hash code,这句话对不对?对的,因为 hash code 只是对象的标识符。 3. Object 类中定义的方法有:clone()、equals()、finalize()、getClass()、hashCode...
12. 两个对象值相同(x.equals(y)==true),但却可有不同的hash code,这句话对不对?为什么? 答案:对 解释:两个对象的值相同,但它们的hash code可以不同。这是因为hash code是对象的唯一标识,而不是对象的...
16、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 17、是否可以继承String类? 18、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,...
44.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 答:不对,有相同的hash code。 45.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 答:switch(expr1...
第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里...
29. 两个对象值相同(x.equals(y) == true),但却可有不同的 hash code,这句话对不对? 正确,两个对象值相同,但却可有不同的 hash code。 30. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的...
在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。...
12. 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? - 正确,虽然两个对象值相等,但它们的哈希码可能不同,特别是在多线程环境中或使用了不同的哈希算法时。 13. 写出Object类中...
#### 第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的 hash code,这句话对不对? - 如果`x.equals(y)`为`true`,根据`equals()`和`hashCode()`的一致性原则,它们应当具有相同的哈希码。但是,...
29. **两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?** - 对,两个对象可能通过equals()判断相等,但由于哈希码是基于对象的内部状态计算的,所以它们的哈希码可能不同。 30. **...
69、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的...
两个对象值相同(x.equals(y)==true),但却可有不同的hash code,这句话对不对? - 如果`x.equals(y)`为真,则`x`和`y`应当具有相同的哈希码。 - 实现`equals()`方法的同时,应相应地实现`hashCode()`方法。 #### ...
28、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 public class ThreadTest1{ private int j; public static ...
两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对? - **不对**:如果`x.equals(y)`为真,则`x`和`y`应该具有相同的`hashCode`。 #### 47. 当一个对象被当作参数传递到一个方法后,此...