public class ExampleString {
public static void main(String[] args) {
String s1="u cannot change me!";
String s2="u cannot change me!";
String s3="u cannot"+" change me!";
String s4="u cannot";
String s5=s4+" change me!";
final String s6="u cannot";
String s7=s6+" change me!";
System.out.println("s1==s2 "+(s1==s2));//true
System.out.println("s1==s3 "+(s1==s3));//true
System.out.println("s1==s5 "+(s1==s5));//false why it is false
System.out.println("s1==s7 "+(s1==s7));//true why it is true
System.out.println("s4==s6 "+(s4==s6));//true
// System.out.println("s5 "+s5);
// System.out.println("s7 "+s7);
System.out.println("s5==s7 "+(s5==s7));//false why
}
}
in case of s5 am doing concatenation but it will give ouput false in case of s7 also am doing concatenation it will give true. am declaring s6 am declaring string as final string am getting true my question is why it is giving like that or what is the difference between them