1.包装类型可以为null,而基本类型不可以
包装类型可以应用于POJO(Plain Ordinary Java Object,简单无规则的Java对象,只有属性字段以及setter和getter方法)。
POJO示例如下:
public class Test01 {
private Integer sno;
private String sname;
public Integer getSno() {
return sno;
}
public void setSno(Integer sno) {
this.sno = sno;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
}
POJO的属性必须要用包装类型,因为数据库的查询结果可能是null,如果使用基本类型的话,因为要自动拆箱(将包装类型转为基本类型,比如说把Integer对象转换为int值),就会抛出NullPointerException的异常。
2.包装类型可用于泛型,而基本类型不可以
因为泛型在编译时会进行类型擦除,最后只保留原始类型,而原始类型只能是Object类及其子类——基本类型是特例。
3.基本类型比包装类型更高效
基本类型在栈中直接存储的具体数值,而包装类型则存储的是堆中的引用