私のクラスの1つに、 type のフィールドがありCharacter
ます。char
フィールドに「値がない」場合があり、null
この(不足している)情報を表す最もクリーンな方法を私に縫い付けることがあるため、私はそれを好みました。
ただし、このアプローチのメモリフットプリントについては疑問に思っています。私は何十万ものオブジェクトを扱っていますが、2 つのオプションの違いはごくわずかであり、調査に値するかもしれません。
私の最初の賭けは、aがオブジェクトであるのchar
に対し、a は 2 バイトかかるということです。しかし、などのボックス化されたプリミティブは通常のクラスではないことCharacter
を知っています (ボックス化とボックス化解除について考えてください)。Integer
Character
さらに、Character
ガベージは他のものと同じように収集されますか、それともライフサイクルが異なりますか? それらは共有リポジトリからプールされていますか? これは標準ですか、それとも JVM の実装に依存しますか?
この問題について、インターネット上で明確な情報を見つけることができませんでした。情報を教えていただけますか?