在Java中,每个存放数据的变量都是有类型的。不同类型的变量在内存中分配的字节数不同,同时存储方式也是不同的。
所以给变量赋值前需要先确定变量的类型,确定了变量的类型,即确定了数据需分配内存空间的大小,数据在内存的存储方式。
Java的数据类型分为两类:基本数据类型、引用数据类型。
基本数据类型
byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-2^7~2^7-1,默认值0
short:短整型,在内存中占16位,即2个字节,取值范围-2^15~2^15-1,默认值0
int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2^31~2^31-1,默认值0
long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L
float:浮点型,在内存中占32位,即4个字节1.4E-45~3.4E38,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0
double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节4.9E-324~1.8E308,默认值0
char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~2^16-1,默认值为空
boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false
需要注意的是整型的表现形式有四种:十进制整数,以0b开头的二进制整数,以0开头的八进制整数,以0x或0X开头的十六进制整数。而浮点型的表现形式为十进制和科学计数法,例如3.14和3.14e1。
值得一提的是字符型的赋值方式。一共有4种:
- 使用英文单引号(')括起单个字符。
- 使用英文单引号括起来十六进制字符代码值来表示单个字符,格式为'\uXXXX',其中u是约定的前缀,为Unicode的第一个字母。
- 可以直接使用数字表示单个字符。
- 某些特殊的字符可以采用转义符'\'来表示,以将其后面的字符转变为其它含义。
基本数据类型转换
1、自动类型转换
将表示范围小的数据类型赋值给表示范围大的数据类型时,Java自动使用隐式类型完成数据类型转换,即:
低-------------------------------------------------------------------------------------------------------------------------->高
byte ------------> short/char ------------> int ------------> long ------------> float ------------> double
例如:float a=100,a=100.0
2、强制类型转换
当把级别高的变量赋值给级别低的变量时,必须使用显式类型转换。显示转换格式:(要转换的类型)被转换的值。需要注意的是,强制类型转换可能导致数据精度损失或溢出。
例如:int a=(int)3.14,a=3(精度损失),byte b=(byte)256,b=0(数据溢出)