Wednesday, 13 June 2018

Difference between == and equals in Java

 The == operator compares two objects to determine if they are the same object in memory i.e.
present in the same memory location. It is possible for two String objects to have the same value,
but located in different areas of memory.

== compares references while .equals compares contents. The method public boolean
equals(Object obj) is provided by the Object class and can be overridden. The default
implementation returns true only if the object is compared with itself, which is equivalent to the
equality operator == being used to compare aliases to the object. String, BitSet, Date, and File
override the equals() method. For two String objects, value equality means that they contain the
same character sequence. For the Wrapper classes, value equality means that the primitive
values are equal.

Sample Program:-

 public class SampleProgram {  
      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");  
           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));  


 == comparison : true  
 == comparison : true  
 Using equals method : true  
 Using equals method : true  

Enjoy Learning.

No comments:

Post a Comment