一、java支持的数据类型有哪些?
1)8种基本数据类型:
byte 8位 取值范围 -2^7 ~ 2^7 -1
short 16位 取值范围 -2^15 ~ 2^15 - 1
char 16位 取值范围 0 ~ 2 ^16 - 1
boolean 位数不明确 取值 true false
int 32位 取值范围 -2^31 ~ 2^31 - 1
long 64位 取值范围 -2^63 ~ 2^ 63 - 1
float 32位 取值范围 1.4e-45 ~ 3.40e38
double 64位 取值范围 4.9e-324 ~ 1.79e308
2)引用类型,包括类、接口、数组
需要注意的是,String不是基本数据类型,而是引用类型
引用类型声明的变量,是指该变量在内存中实际上存储的是个引用地址,创建的对象实际是在堆中
二、什么是自动拆装箱?
自动拆装箱,是指基本数据类型和引用数据类型之间的自动转换
如Integer 和 int 可以自动转换; Float和float可以自动转换
//基本类型转换成包装类型,称为装箱
Integer intObjct = new Integer(2); //装箱
//Integer intObjct = 2 //自动装箱
//自动装箱,如果一个基本类型值出现在需要对象的环境中,会自动装箱
//开箱
int a = 3 + new Integer(3); //加法需要的是数值,所以会自动开箱
Integer b = 3 + new Integer(3); //自动开箱,再自动装箱
Double x = 3.0;
//Double x = 3; //编译器不给过
//double y = 3; //而这个可以