学习笔记十四:
基本数据类型转换--强制类型转换:
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符‘( )’,但可能造成精度降低或者溢出,格外要注意。
如(1)int n1 = (int)1.9;
System.out.println(n1);
则会输出1,即将小数位全部丢失
(2)int n2 = 2000;
byte b1 = (byte)n2;
最后输出b1,则会输出-48,造成数据溢出,差距非常大
强制类型转换的细节:
1.当进行数据的大小从 大->小,就需要使用到强制转换
*2.强转符号只针对最近的操作数有效,往往会使用小括号提升优先级
如:int n1 = (int)10 * 3.5;则会报错,因为在这个强制转换中,(int)只将最近的10转换为int类型,而 * 3.5后又变为了double类型,正确做法是用小括号打出: int n1 = (int)(10 * 3.5);
3.char类型可以保存int的常量值,但不能保存int的变量值,需要强转
如:char c1 = 100;//ok
int m = 100;//ok
char c2 = m;//错误
char c3 = (char)m;//ok
System.out.println(c3);//100对应的字符
4.byte和short、char类型在进行运算时,当做int类型处理