Я следую учебнику Java по примитивным типам данных. В начале говорится, что
В Java SE 8 и более поздних версиях можно использовать тип данных int для представления 32-разрядного целого числа без знака, минимальное значение которого равно 0, а максимальное — 2^32-1. Используйте класс Integer, чтобы использовать тип данных int как целое число без знака.
Из этой цитаты я понимаю, что теперь я могу хранить до 2 ^ 32-1 как int, если я использую объект-оболочку Integer, а не примитивный тип данных int. Но когда я попробовал это, мой компилятор жалуется, что значение, которое я использую, слишком велико, 2 ^ 31. Я пробовал это, используя как примитивный тип данных, так и Object.
Integer integerObjectLarge = 2147483648; //2^31
int integerPrimitiveLarge = 2147483648; //2^31
Как именно я могу использовать int/Integer для хранения значения без знака, например 2 ^ 31?
-1
, а2147483647
проблем не вызывает. - person Dioxin   schedule 26.07.2014