哪个更好:让Java进行自动装箱或使用valueOf()

时间:2011-03-09 22:49:11

标签: java performance autoboxing

我只是想知道让java autobox说一个整数有什么区别:

Integer myInteger = 3; // This will call Integer.valueOf()

或将您的代码设为

Integer myInteger = Integer.valueOf(3);

这有什么微优化吗?我知道第二个更明确,但它也更不必要打字,除此之外还有什么不同吗?。

3 个答案:

答案 0 :(得分:18)

无论如何它们在内部是相同的,所以使用第一个变体。机会很好,未来的编译器优化可能会使未来的第一个更快。

答案 1 :(得分:4)

我会使用第一选择。使用较少的代码也是一样。

除非我希望该程序必须在较旧版本的JVM上运行。但是,在这种情况下,这远不是唯一的兼容性问题。

因此,不使用自动装箱的唯一原因是它不可用。

答案 2 :(得分:1)

我知道,效果确实没有太大差异,请参阅此帖here 差异并不是真正的区别,但你应该使用valueOf,因为Integer现在将Integer对象缓存在-128到127之间。