java - String equals and == with String concatnation -
java - String equals and == with String concatnation -
i trying understand string concatenation output of string compare. clear, have class compare 2 strings using == , equals. trying concat output of == , equals() string. output of equals() concats, output of == does not concat. using boxing feature of java, boolean concated string contact. both equals , == returns boolean knowledge. why difference? can 1 explain on this?
public class stringhandler { public void comparestrings() { string s1 = new string("jai"); string s2 = "jai"; string s3 = "jai"; system.out.println("object , literal compare double equal :: " + s1 == s2); system.out.println("object , literal compare equals :: " + s1.equals(s2)); system.out .println("literal compareing double equal :: " + s2 == s3); system.out.println("literal compareing equals :: " + s2.equals(s3)); } public static void main(string[] args) { stringhandler shandler = new stringhandler(); shandler.comparestrings(); } } output
false object , literal compare equals :: true false literal compareing equals :: true update: answer
without parenthesis s1==s2, jvm compares string "object , literal compare double equal :: jai" == "jai" , result false. actual content in sysout not printed. when parenthesis added jvm compares string "jai" == "jai" , result
object , literal compare double equal :: true
when do
system.out.println("object , literal compare double equal :: " + s1 == s2); you first concatenating string "object , literal compare double equal :: " string s1, give
"object , literal compare double equal :: jai" then, checking if string same object (same reference) s2:
"object , literal compare double equal :: jai" == "jai" which false (the output false).
in other words, it's because operators precedence. 1 way "manipulate" operators precedende utilize parentheses. operations within parentheses parsed first:
system.out.println("object , literal compare double equal :: " + (s1 == s2)); java string equals string-concatenation
Comments
Post a Comment