ボックス化(boxing)[1]とは、プログラミング言語において値型をオブジェクト型(参照型)に変換すること。逆に、ボックス化されたオブジェクトを値型に戻すことをボックス化解除(unboxing)[2]と呼ぶ。 Javaや.NET Frameworkなどの環境においては、値型(Javaではプリミティブ型[3]がこれに相当する)と参照型という根本的に異なる二種類の型が存在する。参照型のインスタンスはヒープ上の独立した領域に確保される。値型は文脈によって確保される場所は異なるものの、いずれにせよメモリ上に連続的に確保される(例えば、ローカル変数として宣言された場合はスタック上に確保され、参照型のメンバとして宣言された場合は参照型の一部として確保される)。 このように値型と参照型とは根本的に性質の異なるものであるが、さまざまな理由により、値型を参照型に型変換して運用することが必要となる場合がある