我已经读过原始数据类型比它们的类更快,但是自动装箱呢?

时间:2017-06-18 09:22:22

标签: java

我已经读过原始数据类型比它们的类更快并占用更少的内存,但是自动装箱呢?它们也会作为对象包装到包装类中,那么使用原语有什么好处呢?

2 个答案:

答案 0 :(得分:0)

除非必要,否则自动装箱不会发生。

要使规则完整,您应该添加类似&#34的内容;避免编写可以避免自动装箱的代码。"

答案 1 :(得分:0)

你不应该期望自动装箱比box_type.valueOf(value)的往返更有效率,其中box_type是相关类型(*)。

自动装箱的主要负担是创建和销毁对象。分代垃圾收集器是为这种情况而构建的,但仍然可能不堪重负。

实际上,如果将值放在容器中,那么在基元足够的情况下(例如类字段)保持盒装值可能更有效,以减少发生的自动装箱步骤的数量。

也就是说,不要认为盒装价值很慢。将拳击(自动或其他)视为一个很小的开销,在非常大的数量时可能很重要。

(*)效率可能较低,但在任何严肃的平台上都不太可能。但是,并不能保证box_type.valueOf(value)new box_type(value)更有效,最后清理。