我只是想知道让java autobox说一个整数有什么区别:
Integer myInteger = 3; // This will call Integer.valueOf()
或将您的代码设为
Integer myInteger = Integer.valueOf(3);
这有什么微优化吗?我知道第二个更明确,但它也更不必要打字,除此之外还有什么不同吗?。
答案 0 :(得分:18)
无论如何它们在内部是相同的,所以使用第一个变体。机会很好,未来的编译器优化可能会使未来的第一个更快。
答案 1 :(得分:4)
我会使用第一选择。使用较少的代码也是一样。
除非我希望该程序必须在较旧版本的JVM上运行。但是,在这种情况下,这远不是唯一的兼容性问题。
因此,不使用自动装箱的唯一原因是它不可用。
答案 2 :(得分:1)
我知道,效果确实没有太大差异,请参阅此帖here 差异并不是真正的区别,但你应该使用valueOf,因为Integer现在将Integer对象缓存在-128到127之间。