This week's book giveaways are in the Java EE and JavaScript forums. We're giving away four copies each of The Java EE 7 Tutorial Volume 1 or Volume 2(winners choice) and jQuery UI in Action and have the authors on-line! See this thread and this one for details.

I have a doubt on a question from the mock test of K&B book. The que is

Given x=0; if(x1.hashCode() != x2.hashCode()) x = x+1; if(x3.equals(x4) == false)x=x+10; if(x5.equals(x6)==true)x=x+100; if(x7.hashCode()==x8.hashCode())x=x+1000; System.out.print("x =" + x);

If the output is x=1111, whic of the following will always be true.

The answer given is x2.equals(x1)==true

I could nto undersatnd this question. According to me if the hash code of x1 and x2 are not equal then the values cannot be equal. Can you please help me on this?

yes you are right,if two objects are equal then they must produce the same hashCode

Check this in the question Does the question says that the equals and hashCode methods are properly implemented or does the question gives the implementation of either one or both methods?