Предостережения

Теперь, когда Java включает средства автоматической упаковки/распаковки, некоторые могут подумать, что соблазнительно применять исключительно объекты вроде Integer или Double, исключая использование примитивных типов. Например, теперь можно написать код вроде следующего:

// Плохое применение автоупаковки/автораспаковки!
Double а, b, с;
а = 10.0;
b = 4.0;
с = Math.sqrt(а*а + b*b) ;
System.out.println("Гипотенуза равна " + с);

В этом примере объекты типа Double хранят значения, которые используются для вычисления гипотенузы прямоугольного треугольника. Несмотря на то что этот код технически корректен и работает правильно, все же это очень плохое использование автоупаковки/автораспаковки. Он намного менее эффективен, чем эквивалентный код, использующий примитивный тип double. Причина в том, что автоупаковка и автораспаковка добавляют накладные расходы, которые отсутствуют в случае применения примитивных типов.

Вообще говоря, вы должны ограничивать использование оболочек типов только теми случаями, когда требуется объектное представление примитивных типов. Автоупаковка/ автораспаковка была добавлена в Java вовсе не в качестве обходного маневра с целью исключения примитивных типов.