Integer 中
public static Integer valueOf(int i) {
assert IntegerCache.high >= 127;
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150;System.out.println(f1 == f2);System.out.println(f3 == f4);truefalsepublic static Boolean valueOf(boolean b) { return (b ? TRUE : FALSE); }public static Character valueOf(char c) { if (c <= 127) { // must cache return CharacterCache.cache[(int)c]; } return new Character(c); }
public static Double valueOf(double d) { return new Double(d);}public static void main(String[] args) {Integer a = 1;Integer b = 2;Integer c = 3;Integer d = 3;Integer e = 321;Integer f = 321;Long g = 3L;Long h = 2L;System.out.println(c==d);//不用解释了把,关于Integer中写的很清楚-128~127都是自动装箱成同一个对象了System.out.println(e==f);//看Integer中解释System.out.println(c==(a+b));//因为+所有a和b自动拆箱,会各自调用IntValue()方法,得到值后会在调用Integer.valueOfSystem.out.println(c.equals(a+b));System.out.println(g==(a+b));System.out.println(g.equals(a+b));System.out.println(g.equals(a+h));//因h是long类型,a则自动向上转型为Long}truefalsetruetruetruefalsetrue原文:http://www.cnblogs.com/woniu4/p/4765754.html