Автобоксинг (autoboxing) в языке программирования Java - это автоматическое преобразование примитивных типов данных в соответствующие им обёрточные классы. Это свойство языка было введено начиная с версии Java 5.
Примитивные типы данных в Java, такие как int
, char
, double
, boolean
и т.д., не являются объектами. Однако, в некоторых случаях, при работе с коллекциями или API, которые работают с объектами, может возникнуть необходимость использовать примитивные типы как объекты. Например, коллекции, такие как ArrayList
, могут хранить только объекты, и не могут хранить примитивные типы данных.
Здесь и приходит на помощь автобоксинг. Когда нужно поместить примитивный тип в коллекцию, Java автоматически создаёт объект из примитива.
Пример:
ArrayList<Integer> list = new ArrayList<>();
// Автобоксинг примитивного типа int в обёрточный класс Integer
list.add(1); // здесь происходит автобоксинг int в Integer
На самом деле, строки кода list.add(1)
выполняется как list.add(Integer.valueOf(1))
, но благодаря автобоксингу, нам не нужно писать этот дополнительный код. Java делает это за нас автоматически.
Осуществите данное преобразование внимательно, ведь каждое такое преобразование, на самом деле, создает новый объект, что может повлиять на производительность приложения в случае большого количества преобразований. Прямое использование примитивных типов всегда будет быстрее и эффективнее, чем использование автобоксинга.