Java Programming - Java.lang Class - Discussion

2. 

Which two statements are true about wrapper or String classes?

  1. If x and y refer to instances of different wrapper classes, then the fragment x.equals(y) will cause a compiler failure.
  2. If x and y refer to instances of different wrapper classes, then x == y can sometimes be true.
  3. If x and y are String references and if x.equals(y) is true, then x == y is true.
  4. 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.
  5. 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.


Anand said: (Nov 19, 2016)  
I think 3, 4 and 5 are true.

Meethio said: (Jul 13, 2019)  
According to me, 3 and 5 are obviously correct.

public class Main
{
public static void main(String[] args) {
System.out.println("Hello World");
String x="Hi";
String y="Hi";

if(x==y)
System.out.println("He2llo World");
if(x.equals(y))
System.out.println("He1llo World");
}
}

Post your comments here:

Name *:

Email   : (optional)

» Your comments will be displayed only after manual approval.