Was ist der Unterschied zwischen “int” und “Integer” im Java?

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