What would be the output?
code
-----------------------------------
public class EqualsTest{
public static void main(
String[] args){
String s1 = "abc";
String s2 = s1;
String s5 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");
//if we remove the brackets around "s1 == s5' it gives a different result.
System.out.println("== comparison : " +(s1 == s5));
System.out.println("== comparison : " +(s1 == s2));
System.out.println("Using equals method : " +s1.equals(s2));
System.out.println("== comparison : " +s3 == s4);
System.out.println("Using equals method : " +s3.equals(s4));
}
}
-----------------------------------------
s1 & s2 point to the same object & have same content.
s3 & s4 have same reference.
I feel the output should be,
== comparison : false // incorrect.output is true
== comparison : true // correct
Using equals method :true // correct
== comparison : true // incorrect.output is false
Using equals method :true //correct
Can somebody explain?