int — это примитивный тип. Т.к. это примитивный тип, то он не является наследником класса Object
Занимает 32 бита.
Чтобы узнать диапазон типа int, можно выполнить такой код

System.out.println("Диапазон типа int от: " + Integer.MIN_VALUE + " до: " + Integer.MAX_VALUE);

Вывод на консоль:
Диапазон типа int от: -2147483648 до: 2147483647

Рассмотрим код:

int a1 = 10;
int a2 = 10;
int b1 = 10000;
int b2 = 10000;
System.out.println(a1==a2);
System.out.println(b1==b2);

Вывод на консоль:
true
true

Т.е. здесь переменные a1,a2 и т.п. — это ЧИСЛА

Другой код:

Integer a1 = 10;
Integer a2 = 10 ;
Integer b1 = 10000;
Integer b2 = 10000;
System.out.println(a1==a2);
System.out.println(b1==b2);

Здесь переменные — это ССЫЛКИ на ОБЪЕКТ, т.е. это экземпляры класса Integer
Вывод на консоль:
true
false

Почему выводится false ? Потому что вызывается статический метод valueOf (This method will always cache values in the range -128 to 127)и значения от -128 до 127 закешированы
Что еще важно:

Integer a1 = 10;
for (int i = 0; i <10; i++) {
  a1 += 10;
}

Так не делать ! Здесь будет создано 10 новых объектов класса Integer, а это съедает много памяти. Поэтому еще раз повторю, так не делать.

Выводы:
Если просто надо объявить переменную, то используйте обычный int. Integer используется в коллекциях, типо Map, но это уже другая история

Реклама