Integer.valueOf() 比 new Integer() 更好

jav*_*erd 5 java

可能的重复:
New Integer 与 valueOf

我在一些地方读到 Integer.valueOf 比 new Integer() 更好,因为它允许编译器缓存值。那么我什么时候应该使用 new Integer() 而不是 Integer.valueOf() 。有没有我不应该使用 Interger.valueOf() 的原因/场景

谢谢

bma*_*ies 5

当您需要不同的对象标识时,可以使用 new。当您不使用 valueOf 时,您可以使用 valueOf。

当您对同一个值多次调用 valueOf 时,JVM 可能(事实上在某些情况下)会一遍又一遍地为您提供同一个对象。当你使用新的时,就不会了。因此,如果您需要多个不同的2对象(例如,出于不同的原因调用 wait on),请使用 new。

另一方面,如果您使用Integer代替 的唯一原因int是有可能null或存储在某个集合中,请使用valueOf。


Mat*_*arz 5

不,没有任何场景new Integer()应该使用。如果您通过包装对象标识来区分整数,那么您不太可能做一些合理的事情。