基本数据类型:
byte,short,int,long,float,double,char,boolean
包装数据类型:
Byte,Short,Integer,Long,Float,Double,Charcter,Boolean
基本数据类型和包装类型的区别
1.使用方式:
基本数据类型主要用于一些常量和局部变量。
在方法的参数、对象的属性中很少会使用基本数据类型来定义变量(包装类型可以为"null"可以表示缺失值)。
包装类型可以用于集合和泛型
2.存储方式
基本数据类型的局部变量存放在jvm(java虚拟机)中栈的局部变量表中,没有被static修饰的成员变量存放在jvm的堆中。
包装类型是对象类型,对象的实例化都存放在堆中。
3.占用空间
基本数据类型的占用内存比包装类型小
4.默认值
基本数据类型的默认值根据类型不同默认值不同。
byte:0 short:0 int:0 long:0L
float:0.0f double:0.0 char:'\u0000' (空字符) boolean:false
包装类型的默认值为null
5.比较方式
基本数据类型用 == 比较
包装类型用 equals 比较,包装类型的 == 比较的是俩个对象的内存地址是否相同
自动装箱和拆箱的原理
Integer i = 10; //装箱
//等价于
Integer i = Integer.valueOf(10);
int n = i; //拆箱
//等价于
int n = i.intValue();
装箱:就是调用了包装类的valueOf()方法
拆箱:就是调用了xxxValue()方法