19

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

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

或将您的代码设置为

Integer myInteger = Integer.valueOf(3);

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

4

3 回答 3

19

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

于 2011-03-09T22:51:41.957 回答
4

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

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

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

于 2011-03-09T22:56:34.577 回答
1

我知道,在性能上确实没有太大的差异,请参见此处 的这篇文章。差异并不是真正的差异,但您应该使用 valueOf,因为 Integer 现在缓存 -128 和 127 之间的 Integer 对象。

于 2011-03-09T22:57:54.600 回答