一、基本类型
byte: java中最小的数据类型。1字节/8位。-128(2^7)~127(2^7-1),默认值0。
short: 短整型,2字节/16位,取值范围-32768(--2^15)~32767(2^15-1),默认值0
int: 整型,4字节/32位,取值范围-2147483648(-2^31)~2147483647(2^31-1),默认值0
long: 长整型,8字节/64位,-2^63(-2^63)~2^63-1(2^63-1),默认值0L
float: 浮点型,4字节/32位,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0
double: 双精度浮点型,8字节/64位,默认值0
char: 字符型,单个字符,2字节/16位,0(’u0000’)~65535(’uffff’),默认值空
boolean: 布尔型,1字节,判断真或假(仅有两个值,即true、false),默认值false
范围值计算公式:-(2^(字节数*8-1)) ~ (2^(字节数*8-1))-1
二、基本数据类型转换
1、自动转换
不同数据类型之间的运算,会存在类型自动转换的问题。从低精度向高精度转。
容量小 -------------------------------> 容量大
byte,short,char << int << long << float << double
byte << short
byte和char ,short和char都不会存在隐式转换,相互之间只能进行强制类型转换。
小数默认是double,整数默认是int
2、强制转换
高精度转成低精度
float a=3.1f 或 float a=(float)3.1
double a=3d 或 double=(double)3
int m=(int)3.1; //3。double强制转换int,精度丢失。
int m=3.4 //报错