包装类与基本数据类型的关系
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Interger【特殊】 |
long | Long |
double | Double |
float | Float |
char | character【特殊】 |
boolean | Boolean |
装箱
把基本类型的数据包装到包装类中 ( 基本类型的数据 -> 包装类 )
装箱实现
- 构造方法:
Integer(int value)
构造一个新分配的Integer 对象,它表示指定的int值。
Integer(String s)
构造一个新分配的Integer 对象,它表示String 参数所指示的int值。
注意事项:
传递的字符串,必须是基本类型的字符串,否则会抛出异常。
例如:Integer i1= new Integer("25a2");
错误写法Integer i1= new Integer("2522");
正确写法
- 静态方法:
static Integer value0f(int i)
返回一个表示指定的int值的Integer实例。
static Integer valueOf(String s)
返回保存指定的String的值的Integer对象。
拆箱
在包装类中取出基本类型的数据 ( 包装类 -> 基本类型的数据 )
拆箱实现
int intValue()
以int类型返回该Integer的值。
例子
public class Main {
public static void main(String[] args) {
// 使用构造方法进行装箱
Integer in1 = new Integer(123);
Integer in2 = new Integer("123");
System.out.println("第一个构造方法:" + in1);
System.out.println("第二个构造方法:" + in2);
// 使用静态方法进行装箱
Integer in3 = Integer.valueOf(456);
Integer in4 = Integer.valueOf("456");
System.out.println("第一个静态方法:" + in3);
System.out.println("第二个静态方法:" + in4);
// 拆箱动作
int i1 = in1.intValue();
System.out.println("拆箱动作:" + i1);
}
}
自动装箱
直接把int类型的整数赋值包装类
Integer in = 1; 相当于Integer in = new Integer(1);
自动拆箱
in是包装类,无法直接参与运算,可以自动转换为基本数据类型,在进行计算
in+2; 相当于in. intVale() + 2 = 3
in = in. intVale() + 2 = 3又是一个自动装箱