byte(1个字节)<(short=char(2个字节))<int(4个字节)<float(4个字节)<double(8个字节);
优先级从低到高
从低到高时,在计算过程中,会自动由低向高转化;从高到低计算时,必须强制转换,但是强制转换会缺失一定的精准度。
除此之外,在java语言中,当出现 float 定义时,数值要进行强制转换,如下:
float b=(float)12.5;
但是当用double定义时,直接写数值就好,如下:
double a= 12.5;
暂时未搞清楚为何会这样,就先记住这种差别吧。