ボックス化
次はJavaによる例である。プリミティブ型のひとつであるint型の値を、対応するプリミティブラッパークラスであるjava.lang.Integer型のオブジェクトにボックス化し、さらにそれをint型にボックス化解除している。ボックス化により、値はラッパークラス内のカプセル化されたフィールドにて保持されるが、ラッパークラスの使用者は詳細を知る必要はない。
一見単純な型変換のように見えるが、ボックス化においてはヒープ上に新しく領域を確保し、そこに値型(プリミティブ型)のデータをコピーするという操作が行われているため注意が必要である。頻繁なボックス化の発生は性能の低下を引き起こす。一方、ボックス化解除ではデータのコピーが行われるだけであり、ヒープに領域を確保する必要がないのでパフォーマンスコストは比較的小さい。
なお、ゼロ近傍の整数などのよく使われる数値に対して使いまわせるように事前生成されている、ラッパーオブジェクトのキャッシュを優先的に利用できるようにするため、通例Integer.Integer(int)コンストラクタよりもInteger.valueOf(int)メソッドなどの使用が好ましい。