Which two statements are true about wrapper or String classes?
If x and y refer to instances of different wrapper classes, then the fragment x.equals(y) will cause a compiler failure.
If x and y refer to instances of different wrapper classes, then x == y can sometimes be true.
If x and y are String references and if x.equals(y) is true, then x == y is true.
If x, y, and z refer to instances of wrapper classes and x.equals(y) is true, and y.equals(z) is true, then z.equals(x) will always be true.
If x and y are String references and x == y is true, then y.equals(x) will be true.
[A].
1 and 2
[B].
2 and 3
[C].
3 and 4
[D].
4 and 5
Answer: Option D
Explanation:
Statement (4) describes an example of the equals() method behaving transitively. By the way, x, y,and z will all be the same type of wrapper. Statement (5) is true because x and y are referring to the same String object.
Statement (1) is incorrect—the fragment will compile. Statement (2) is incorrect because x == y means that the two reference variables are referring to the same object. Statement (3) will only be true if x and y refer to the same String. It is possible for x and y to refer to two different String objects with the same value.