Integer类基本类型int的封装类,是不可变类。该类提供了很多与int相互转换的方法。int类型32位,因此它有最小值( -2^31=-2147483648)和最大值(2^31-1=2147483647)。
在Integer类中有个内部类缓存类:
Integer类型将8位的整数(-128~127)看作是常用数。
上面两个Integer的方法,其实是自动装箱和拆箱时会调用的方法,在我们使用 Integer i = 4;时会自动装箱,调用的是上面第一个方法valueOf(),由上面代码可知当我们定义多个-128~127之内整数时返回的Integer对象是同一个对象,多有的引用都指向这一个对象。因此他们==得到的结果是true。例如:
Integer i1 = 100;
Integer i2 = 100;
Integer i3 = 200;
Integer i4 = 200;
System.out.println(i1 == i2); //true
System.out.println(i3 == i4); //false
上面第二个方式是自动拆箱是会调用的方法。
Integer i = new Integer(10);
int i1 = i; //此处会调用intValue()方法
Integer类中有个属性 value,其类型是int,是包装类值。
该类有个衍生类AtomicInteger,在线程中使用。
八个基本类 :
long>>Long 64位;
short>>Short 16位;
byte>>Byte 8位;
float>>Float 32位;
double>>Double 64位;
boolean>>Boolean 1位;
char>>Charater 16位;
上面这些封装类都是final修饰的不可变类。