declaring using a variable using new vs normal decleration and nature of Integer ( boxing / unboxing)
===

Guys can anybody explain me this nature of new and the use of Integer 
       

	Integer i = new Integer(-10);
	Integer j = new Integer(-10);
	Integer k = -10;
	Integer l=-10;
	System.out.println(i==j);
	System.out.println(k==l);
		
	
answer is false true

next 

        Integer a=128;
		Integer b=128;
		Integer c=127;
		Integer d=127;
		System.out.println(a==b);
		System.out.println(c==d);
	
answer am getting is false true.
Can anybody explain this nature.
thanks in advance :)