int
- это примитивный тип.Переменные типа int
хранят фактическое двоичное значение для целого числа, которое вы хотите представить.int.parseInt("1")
не имеет смысла, потому что int
является не классом и, следовательно, не имеет никаких методов.
Integer
является классом, не отличающимся от других вязык Java.Переменные типа Integer
хранят ссылки на Integer
объекты, как и любой другой ссылочный (объектный) тип.Integer.parseInt("1")
- это вызов статического метода parseInt
из класса Integer
(обратите внимание, что этот метод на самом деле возвращает int
, а не Integer
).
Точнее, Integer
это класс с одним полем типа int
.Этот класс используется там, где вам нужно, чтобы int
обрабатывался как любой другой объект, например, в универсальных типах или в ситуациях, когда вам нужна обнуляемость.
Обратите внимание, что у каждого примитивного типа в Java есть эквивалент Обертка класс:
byte
имеет Byte
short
имеет Short
int
имеет Integer
long
имеет Long
boolean
имеет Boolean
char
имеет Character
float
имеет Float
double
имеет Double
Классы-обертки наследуются от класса Object, а примитивы - нет.Таким образом, его можно использовать в коллекциях со ссылкой на объект или с помощью Generics.
Начиная с Java 5 у нас есть автобокс, и преобразование между классом примитива и классом-оболочкой выполняется автоматически.Однако будьте осторожны, так как это может привести к незначительным ошибкам и проблемам с производительностью;Явное понимание конверсий никогда не повредит.