I wanted to check Integer equality in my application but came across a strange behavior. At some point my application was working correctly but at some point it was failing. So I just written a test code over here 

```
public class EqualityTest {

     public static void main(String args[]) {
           Integer a = 100;
           Integer b = 100;
           Integer c = 1000;
           Integer d = 1000;
           if (a == b) {
                 System.out.println("a & b are Equal");
           }
           else {
                 System.out.println("a & b are Not Equal");
           }

           if (c == d) {
                 System.out.println("c & d are Equal");
           } else {
                 System.out.println("c & d are Not Equal");
           }
     }
}

```

Output

```
a & b are Equal
c & d are Not Equal

```

here my question is why c and d are not equal?