Autoboxing Unboxing Operator (!=) and (==) difference

Viewed 724
public class T1 {    

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Integer i1 = 1000;
        Integer i2 = 1000;
        if(i1 != i2) System.out.println("different objects");
        if(i1.equals(i2)) System.out.println("meaningfully equal");    

    }

}

O/P for this is:

different objects
meaningfully equal

Where as

public class T2 {    

    public static void main(String[] args) {            

        Integer i3 = 10;
        Integer i4 = 10;
        if(i3!=i4)System.out.println("Crap dude!!");
        if(i3 == i4) System.out.println("same object");

        if(i3.equals(i4)) System.out.println("meaningfully equal");    
    }

}

Produces Following O/P:

same object
meaningfully equal

I didn't understand why in class T2 if(i3!=i4) didn't get triggered I'm refering SCJP 1.6 but not able to understand.
Please help me.

5 Answers
Related