我已经读过原始数据类型比它们的类更快并占用更少的内存,但是自动装箱呢?它们也会作为对象包装到包装类中,那么使用原语有什么好处呢?
答案 0 :(得分:0)
除非必要,否则自动装箱不会发生。
要使规则完整,您应该添加类似&#34的内容;避免编写可以避免自动装箱的代码。"
答案 1 :(得分:0)
你不应该期望自动装箱比box_type.valueOf(value)
的往返更有效率,其中box_type
是相关类型(*)。
自动装箱的主要负担是创建和销毁对象。分代垃圾收集器是为这种情况而构建的,但仍然可能不堪重负。
实际上,如果将值放在容器中,那么在基元足够的情况下(例如类字段)保持盒装值可能更有效,以减少发生的自动装箱步骤的数量。
也就是说,不要认为盒装价值很慢。将拳击(自动或其他)视为一个很小的开销,在非常大的数量时可能很重要。
(*)效率可能较低,但在任何严肃的平台上都不太可能。但是,并不能保证box_type.valueOf(value)
比new box_type(value)
更有效,最后清理。