1.包装类
八大基本类型 及对应的包装类
boolean Boolean
byte Byte
char Character
double Double
float Float
int Integer
long Long
short Short
最大的用途是完成字符串类型与基本类型之间的数据类型转换
八大基本类型的对象类型做参数也是值传递
2.装箱和拆箱问题
2.1 装箱:将基本类型转换为对应的包装类型
拆箱:将包装类型转换为对应的基本类型
在Java1.5之前的装箱和拆箱方式:手动装箱和手动拆箱,也就是编写代码完成类型转换
代码示例如下:
int a = 10;
//手动装箱 -- 基本类型转换为包装类型
Integer b = Integer.valueOf(a);
//手动拆箱 -- 包装类型转换为基本类型
int c = b.intValue();
在Java1.5之后,认为手动装箱拆箱太繁琐,于是基本类型和对象类型进行了重新设计,
两者可以直接相互引用,叫自动装箱和自动拆箱.
代码示例如下:
int a = 10;
Integer b = a; //自动装箱
int c = b; //自动拆箱
2.2 自动拆箱与空指针问题
包装类型在参与数学计算时,会自动拆箱转换为基本类型,相当于调用intValue方法
若包装类的变量为null就会引发空指针异常.
代码示例如下:
public class NullPointerBox {
public static void main(String[] args) {
Integer a = null;
/**
* 引发空指针异常:java.lang.NullPointerException
* 引发原因:Integer b = a+10;其右侧表达式中10为基本类型,a为包装类型
* 在进行计算时,a自动拆箱转换为基本类型,相当于调用Integer类中的intValue方法
* 而变量a为null;调用任何方法都会引发空指针异常
* 故而报错
*/
int b = a+10;//这里a要参与计算就会自动拆箱,从而引发异常
System.out.println("b== " + b);
}
}