Java数据类型转换
变量
变量声明方式为:
数据类型 变量名;
变量可以赋值,同时也可以用另一个变量给这个变量赋值,其中变量名的本质是一个地址,这个地址存储着变量的值。当声明一个变量是就是根据数据类型开辟了一块相应大小的内存。
数据类型
java有8个基本的数据类型 byte short int long char float double boolean,其中前7个占用的内存空间分别为1、2、4、8、4、2、4、8个字节,boolean站一位,只有true和false。
数据类型转换
当一个变量接收不同数据类型的变量时,会因为不同数据类型数据占用的内存空间的不同以及存储方式不同而出现问题。
例如 int 类型和 short类型数据
int 类型转成 short 类型数据时所占空间会减小,会丢失精度
short 类型转成 int 类型数据是所占的空间会变大,可以将高位补零而不会丢失精度。
所以在java中小范围的数据类型向大范围数据类型转型时可以自动转型,而大范围数据类型向小范围数据类型转型时需要强制转型且超出范围会丢失精度造成错误。
数据范围大小为依次为: byte < short < int < long < float < double
在几个数据类型中因为 char 没有负数,所以虽然 char 和 short
所占空间相同,但他们取值却没有包含关系,所以他们之间不能自动转换。 int 类型包含 char 类型中的所以数,所以 char 向 int 类型转换时可以自动转换。
在浮点数中浮点数并不是根据十进制来存储小数,所以float虽然只占四个字节但仍然要大于long。