我使用Sonar来使代码更整洁,它指出我使用new Integer(1)而不是Integer.valueOf(1)。因为似乎valueOf没有实例化新对象,所以对内存更友好。怎么valueOf不能实例化一个新对象?它是如何工作的?所有整数都适用吗?