intEs un tipo primitivo. Las variables de tipo intalmacenan el valor binario real para el entero que desea representar. int.parseInt("1")no tiene sentido porque noint es una clase y por lo tanto no tiene ningún método.
Integeres una clase, no diferente de ninguna otra en el lenguaje Java. Las variables de tipo Integeralmacenan referencias a Integerobjetos, al igual que con cualquier otro tipo de referencia (objeto). Integer.parseInt("1")es una llamada al método estático parseIntdesde la clase Integer(tenga en cuenta que este método en realidad devuelve un inty no un Integer).
Para ser más específicos, Integeres una clase con un solo campo de tipo int. Esta clase se usa cuando necesita intque se lo trate como a cualquier otro objeto, como en tipos genéricos o situaciones en las que necesita nulabilidad.
Tenga en cuenta que cada tipo primitivo en Java tiene una clase de contenedor equivalente :
byte tiene Byte
short tiene Short
int tiene Integer
long tiene Long
boolean tiene Boolean
char tiene Character
float tiene Float
double tiene Double
Las clases de envoltura heredan de la clase Object y las primitivas no. Por lo tanto, se puede utilizar en colecciones con referencia a objetos o con genéricos.
Desde java 5 tenemos autoboxing, y la conversión entre primitiva y clase de envoltura se realiza automáticamente. Sin embargo, tenga cuidado, ya que esto puede introducir errores sutiles y problemas de rendimiento; ser explícito sobre las conversiones nunca está de más.