简述Integer
说到Integer,就要先说一下什么是包装类,
java中的数据类型int,double等不是对象,无法通过向上转型获取到Object提供的方法,而像String却可以,只因为String是
一个对象而不是一个类型。基本数据类型由于这样的特性,导致无法参与转型,泛型,反射等过程。为了弥补这个缺陷,java提
供了包装类。包装类顾名思义就是将基本的数据类型以及一些辅助方法包装到类中。Integer就是int的包装类,那么他们之间的
区别是什么。
上代码:
1,无论如何,Integer与new Integer不会相等,因为他们的内存地址不一样,所以为false。
2,两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false。因为
java在编译Integer i2 = 128的时候,被翻译成:Integer i2 = Integer.valueOf(128);而
valueOf()函数会对-128到127之间的数进行缓存。
3,两个都是new出来的,都为false。还是内存地址不一样。
4,int和Integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比。