Integer与int比较

有如下4条语句:

1 Integer i01=59;
2 int i02=59;
3 Integer i03=Integer.valueOf(59);
4 Integer i04=new Integer(59);

以下输出结果为false的是:(3)

1 System.out.println(i01==i02);
2 System.out.println(i01==i03);
3 System.out.println(i03==i04);
4 System.out.println(i02==i04);

分析:①无论如何,Integer与new Integer不会相等。不会经历拆箱过程, 
  ②两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false 
  java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存 
  ③两个都是new出来的,都为false 
  ④int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比

原文地址:https://www.cnblogs.com/XuGuobao/p/7204271.html