我正在使用Sonar让我的代码更干净,它指出我正在使用new Integer(1)
代替Integer.valueOf(1)
。因为看起来valueOf
不实例化新对象,因此更节省内存。怎么能valueOf
不实例化一个新对象?它是如何工作的?对于所有整数都是如此吗?
Integer.valueOf
实现值的缓存-128
to +127
。请参阅 Java 语言规范的最后一段,第 5.1.7 节,其中解释了装箱的要求(通常以.valueOf
方法)。
http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.7
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)