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