Im Unterschied zum Datentyp Integer ist int ein primitiver Datentyp. Objekte der Klasse Integer speichern einen int. Darüber hinaus bietet die Klasse Integer verschiedene Methoden wie parseInt(), toHexString(), reverse(), valueOf(), … zum Arbeiten mit Ganzzahlen an.
Datenstrukturen wie List, Set, Map, … arbeiten mit Elementen, die von Object abgeleitet sind. In solchen Datenstrukturen kann man keine primitiven Datentypen verwenden, sondern muss zum Speichern von numerischen Werten auf Objekte der Klassen Integer, Double, … zurückgreifen.
In Java erfolgt eine Umwandlung zwischen int und Integer implizit (boxing, unboxing).
List<Integer> li = new ArrayList<>(); li.add(new Integer(123)); li.add(456); // boxing int j = li.get(1); // unboxing