Я согласен с предыдущими ответами, использование объектов-примитивов может быть дорогостоящим.Но если производительность не критична для вашего приложения, вы избегаете переполнения при использовании объектов.Например:
long bigNumber = Integer.MAX_VALUE + 2;
Значение bigNumber
равно -2147483647, и вы ожидаете, что оно будет 2147483649. Это ошибка в коде, которая будет исправлена с помощью:
long bigNumber = Integer.MAX_VALUE + 2l; // note that '2' is a long now (it is '2L').
И bigNumber
будет 2147483649. Такие ошибки иногда легко пропустить и могут привести к неизвестному поведению или уязвимостям (см. CWE-190 ).
Если выиспользуйте объекты-обертки, эквивалентный код не будет компилироваться.
Long bigNumber = Integer.MAX_VALUE + 2; // Not compiling
Таким образом, с помощью объектов-оболочек примитивов проще остановить такие проблемы.
На ваш вопрос уже получен ответ, чтоЯ отвечаю только для того, чтобы добавить немного больше информации, не упомянутой ранее.