通过查看String类的源码:
public static String valueOf(int i) { return Integer.toString(i); }
我们可以看到,String.valueOf(int i)其实是调用了Integer.toString(int i)方法的。
再次通过查看Integer类的源码我们可以看到:
public static String toString(int i) { if (i == Integer.MIN_VALUE) return "-2147483648"; int size = (i < 0) ? stringSize(-i) + 1 : stringSize(i); char[] buf = new char[size]; getChars(i, size, buf); return new String(buf, true); }
除了当参数i=-2^31时,值返回"-2147483648"外,当i=其他值时,都返回一个新的Stirng对象(new String(buf,true))。