基本包装类:为了对基本数据类型进行更多的操作,更方便的操作,java就针对每一种基本数据类型提供了对应的类类型
基本数据类型 | 包装类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
Integer类:int基本数据类型的包装类
- public Integer(int value) 构造一个新分配的Integer对象,它表示指定的int值
- public Integer(String s) 构造一个新分配的Integre对象,它表示String参数所指定的int值。传一个字面上是整数的字符串。否则NumberFormatException异常。
- int – String:
public static String valueOf(int i) --------------- String string=String.valueOf(100);
public static String toString(int i)---------------- String string= Integer.toString(100); - String – int:
public int intValueOf() ----------------------------- int i =new Interger(str).intValueOf();
public static int parseInt(String s)--------------- int i=Integer.parseInt(Str);
自动拆装箱:
- 将包装类型自动拆成基本类型叫自动拆箱。
- 将基本类型自动转换成他所对应的的包装类型叫自动装箱。
- int类型数据和Intger在进行比较时,Integer会进行拆箱,转为int值与int进行比较
- Integer与Integer比较时,由于直接赋值的时候会进行自动的装箱,需注意两个问题:
一:一个字节256个对象,将会直接缓存在IntegerCache中,那么赋值在这个区间的时候不会创建新的Integer对象而是从缓存中获取已经创建好的Integer对象
二:当大于这个范围时候,直接new Integer来创建Integer对象 - new Integer(1)和Integer a=1不同,前者会创建对象,存储在堆中,而后者因为在-128到127范围之内,不会创建新对象,而是从IntegerCache中获取的。那么Integer a=128,大于该范围的话才会直接通过new Integer(128)创建对象,进行装箱。