在我的一个课程中,我有一个 type 字段Character
。我更喜欢它,char
因为有时该字段“没有价值”并且null
对我来说是表示这种(缺乏)信息的最干净的方式。
但是我想知道这种方法的内存占用。我正在处理数十万个对象,这两个选项之间可以忽略不计的差异现在可能值得进行一些调查。
我的第一个赌注是 achar
占用两个字节,而 aCharacter
是一个对象,因此它需要更多才能支持它的生命周期。但是我知道像Integer
,之类的盒装原语Character
不是普通的类(想想装箱和拆箱),所以我想知道 JVM 是否可以在后台进行某种优化。
此外,Character
s 垃圾是像其他东西一样收集还是具有不同的生命周期?它们是从共享存储库中汇集的吗?这个标准或 JVM 实现是依赖的吗?
我无法在 Internet 上找到有关此问题的任何明确信息。你能给我指出一些信息吗?