Javaにおけるボクシングとアンボクシングの概念

箱詰めとアン箱詰めは、基本データ型をラップされた型に変換(箱詰め)し、ラップされた型を基本データ型に変換する(アン箱詰め)工程です。

基本データ型を対応するラッパークラス型に変換することをボックス化(Boxing)という。 ラッパークラス型に基本データ型を代入したり、メソッドに引数として渡したりする必要がある場合、自動的にボックス化が行われる。 例えば、int型のデータをInteger型の変数に入れると、ボックス化が行われる。

ボックスから取り出す(アンボクシング)とは、ラッパークラスの型を、それに対応した基本データの型に変換することである。ラッパークラスの型を基本データの型に代入したり、メソッドに引数として渡したりする必要があるときに、自動的にアンボクシング操作が行われる。たとえば、Integer型のデータをint型の変数に代入すると、アンボクシング操作が実行される。

プリミティブ型とラッパー型の相互変換を行う自動ボックス化とアンボックス化は、プリミティブ型が必要な場合にラッパー型を用いてラッパー型が備えるメソッドでプリミティブ型の値を操作することができ便利だ。ただし自動ボックス化/アンボックス化の際に型変換を伴うので、パフォーマンスに影響が出るので、高速処理が求められる場面では、自動ボックス化/アンボックス化の回数を考慮する必要がある。

bannerAds