一、常量的数据类型
整型默认为int
若为长整型,则要在末尾加L;例如25L
浮点型默认为double
若为单精度浮点型float,则要在后面加F;例如2.36F
二、变量数据类型之间的转换
1、自动转换
当数据类型不一样时,会发生数据类型转换
规则:数据范围从小到大
特点:无需代码处理,自动完成
byte: 1个字节,数据范围是-128~127之间。
short: 2个字节,数据范围是-32768~32767之间。
int: 4个字节,数据范围是-231次方————+231-1。
long: 8个字节,数据范围为-263———263-1。
float: 4个字节,数据范围在-1.4x10-45——+3.4x1038
double: 8个字节,数据范围在-4.9x10-324——+1.8x10308
boolean: 1/8个字节只有true和false两个取值。
char: 字母数字占1个字节,中文占两个字节;存储Unicode码,用单引号赋值。
例:float num1 = 32L;//由上表可知float的数据范围比long大,可以完成自动类型转换
byte num2 = 2L;//由上表可知float的数据范围大比long小,不能完成自动类型转换
int num3 = 4;
byte num4 = 25;//特例:对于byte和short,只要“=”右边的常量没有超过左边数据类型的范围;可以转为对应的数据类型,不会报错
short num5 = 34;
num4 = num3; //因为num3属于变量,所以不能完成自动类型转换
num5 = num2 + num5;//在计算过程中,byte,short,char会自动提升为int类型,无需代码完成,所有等号右边是int,左边为short,会报错
计算过程中转换顺序:
byte,short,char——>int——>long——>float——>double
2、强制类型转换
对于不能完成自动类型转换的数据要进行强制类型转换
强制类型转换的格式为:数据类型 变量名 = (数据类型)被转数据值;
例:改正上面红色部分
byte num2 = (byte)2L;
num4 =(byte) num3;
num5 =(short)(num2 + num5);
注意事项:
浮点转成整数,直接取消小数点,可能造成数据损失精度。
int 强制转成 short 砍掉2个字节,可能造成数据丢失。
浮点数转换为整数,小数部分会丢失。