В Java используются классы-обёртки вместо примитивных типов по нескольким причинам:
- Соблюдение принципа «всё является объектом». 4 Классы-обёртки позволяют не нарушать эту концепцию, благодаря чему числа, символы и булевые значения true/false не выпадают из неё. 1
- Расширение возможностей работы с данными. 1 Классы-обёртки предоставляют удобные методы и поля для работы с этими значениями. 1 Например, в Integer есть данные о максимальном и минимальном значениях для типа, а также методы, которые преобразуют другие типы в числа. 2
- Совместимость и единообразие. 2 Многие возможности Java завязаны на то, что типы представлены классами, только в этом случае они смогут быть использованы как параметры методов или их возвращаемое значение. 2
Однако примитивные типы всё ещё нужны для производительности. 12 Работа с примитивными типами как объектами значительно ухудшает производительность программы, поэтому по умолчанию создаются объекты именно примитивных типов. 2