Machine-translated by Google. Questions are authored in English.
Top

Discussion

Which line contains the error?

public class Sample54
{
    public static void main(String[] args)
    {
        assert -0.0 == 0.0;
        assert Double.valueOf(-0.0).equals(Double.valueOf(0.0));
        System.out.println("both");
    }
}

  • A.No line here is in error.
  • B.assert Double.valueOf(-0.0).equals(Double.valueOf(0.0));
  • C.assert -0.0 == 0.0;
  • D.System.out.println("both");

Answer: B

The primitive comparison is true: == treats negative and positive zero as equal. Double.equals does not, because it compares the underlying bit patterns so that collections behave consistently. So the first assertion passes and the second fails, on values that look identical.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.