int
	and
	Integer ?
int
is a "primitive type" of the language
while
	Integer 
is a defined class type (the class is defined
in the file java/lang/Integer.java).
So if you declare
	
	Integer n = new Integer(2)
	
you are really getting an object (named "n").
Integer 
is basically a "wrapper" around the
int
type.
Sometimes, your code needs an object, and you cannot use a primitive type. In this case, you first create the corresponding Integer object.
There are similar wrappers for the other primitive types.