В Java у каждого примитивного типа есть соответствующий класс-обертка.
А зачем нужны эти классы-обертки? Давайте разбираться.
Все дело в том, что в Java все является объектом, такова идеология. А примитивные типы явно выбивались из этого общего правила. И чтобы привести примитивы к общему знаменателю в Java используются классы-обертки, которые являются объектами и содержат в себе значение примитива.
При присваивании примитива в объект класса обертки или обратно срабатывает автоупаковка/автораспаковка.
Какие преимущества дают классы обертки:
- позволяют соблюдать принцип «все является объектом»
- предоставляют удобные методы (Integer.toString)
- дополнительные статические поля (Integer.MAX_VALUE)
- незаменимы, когда какой-то метод ждет на входе исключительно объект
Ну хорошо, а зачем тогда оставлять примитивные типы, если все так здорово реализуется с использованием объектов? Все просто - производительность. Примитивные типы гораздо шустрее, по сравнению с объектами.
#программирование #java