Ответ на #вопрос4.
Автоупаковка (autoboxing) - процесс автоматического преобразования из примитивного типа в соответствующий класс обертку.
Автораспаковка (unboxing) - делает ровно обратное к автоупаковке - преобразует класс обертку в примитив.
А вот если окажется значение обертки null, то при распаковке будет выброшено исключение NullPointerException.
Автоупаковка (autoboxing) - процесс автоматического преобразования из примитивного типа в соответствующий класс обертку.
Автораспаковка (unboxing) - делает ровно обратное к автоупаковке - преобразует класс обертку в примитив.
А вот если окажется значение обертки null, то при распаковке будет выброшено исключение NullPointerException.