关于Integer大小比较的问题
关于Integer大小比较的问题
昨天跟朋友一起吃饭,他说到两个Integer类型值比较是否相等的问题。经理也在这里把java的Integer值比较的问题拿出来说一说。因为在面试的时候这个是经常遇到的问题。
首先给大家看一个例子:
1public class Test { 2 3 /** 4 * 关于Integer大小比较问题 5 * @author 经理 6 */ 7 public static void main(String[] args) { 8 Integer a = 10; 9 Integer b = 10;10 System.out.println("a==b : " + String.valueOf(a==b));11 System.out.println("a.equals(b) : " + String.valueOf(a.equals(b)));12 }13}14 1public class Test { 2 3 /** 4 * 关于Integer大小比较问题 5 * @author 经理 6 */ 7 public static void main(String[] args) { 8 Integer a = 1000; 9 Integer b = 1000;10 System.out.println("a==b : " + String.valueOf(a==b));11 System.out.println("a.equals(b) : " + String.valueOf(a.equals(b)));12 }13}1public static Integer valueOf(int i) {2 if(i >= -128 && i <= IntegerCache.high)3 return IntegerCache.cache[i + 128];4 else5 return new Integer(i);6 }