有如下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再去比