Нет, int
и Integer
различны.Integer
- это обычный класс, который, как вы знаете, является подклассом Number
, который сам является подклассом Object
.Но int
- это примитивный тип.Это не класс, поэтому, очевидно, не подкласс чего-либо;у него нет методов или атрибутов, и, как правило, вы ничего не можете сделать с самим int
, кроме объявления переменных этого типа, например,
int x = 3;
Поскольку int
не является классом, значенияint
переменные не являются объектами.У них нет методов, атрибутов или свойств, и вы мало что можете с ними сделать, кроме определенных математических операций, которые специально обрабатываются компилятором.
Обратите внимание, что компилятор Java (последние версии) автоматически вставит код впреобразовать int
в Integer
или наоборот, если это необходимо.Так что может выглядеть как будто это одно и то же, когда вы пишете свою программу, но на самом деле это не так.Например, если вы напишите
Integer y = 5;
javac
, это преобразуется в
Integer y = Integer.valueOf(5);
или
Map<Integer,Integer> m = ...;
m.put(4, 8);
int z = m.get(4);
становится
Map<Integer,Integer> m = ...;
m.put(Integer.valueOf(4), Integer.valueOf(8));
int z = m.get(Integer.valueOf(4)).intValue();