思考整理:
数据类型转换(掌握)
(1)boolean类型不参与转换
(2)默认转换
A:从小到大
B:byte,short,char -- int -- long -- float -- double
C:byte,short,char之间不相互转换,直接转成int类型参与运算。
(3)强制转换
A:从大到小
B:可能会有精度的损失,一般不建议这样使用。
C:格式:
目标数据类型 变量名 = (目标数据类型) (被转换的数据);
5.ASCII码
6.思考题和面试题:
A:下面两种方式有区别吗?
float f1 = 12.345f;
float f2 = (float)12.345;
答:都没问题,表述都是一样的。
B:下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;注:这些运算都是进行了强制转换,
byte b2 = 4;不过还是在其范围以内。
byte b3 = b1 + b2; 解:不可以,会损失精度。改为int。
byte b4 = 3 + 4; 解:可以。因为没超出运算范围。
C:下面的操作结果是什么呢?
byte b = (byte)130; 解:可以,强制转换。
D:字符参与运算
是查找ASCII里面的值
'a'97
'A'65
'0'48
'你'20320
System.out.println('a');
System.out.println('a' + 1);
数据类型转换(掌握)
(1)boolean类型不参与转换
(2)默认转换
A:从小到大
B:byte,short,char -- int -- long -- float -- double
C:byte,short,char之间不相互转换,直接转成int类型参与运算。
(3)强制转换
A:从大到小
B:可能会有精度的损失,一般不建议这样使用。
C:格式:
目标数据类型 变量名 = (目标数据类型) (被转换的数据);
5.ASCII码
6.思考题和面试题:
A:下面两种方式有区别吗?
float f1 = 12.345f;
float f2 = (float)12.345;
答:都没问题,表述都是一样的。
B:下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;注:这些运算都是进行了强制转换,
byte b2 = 4;不过还是在其范围以内。
byte b3 = b1 + b2; 解:不可以,会损失精度。改为int。
byte b4 = 3 + 4; 解:可以。因为没超出运算范围。
C:下面的操作结果是什么呢?
byte b = (byte)130; 解:可以,强制转换。
D:字符参与运算
是查找ASCII里面的值
'a'97
'A'65
'0'48
'你'20320
System.out.println('a');
System.out.println('a' + 1);