类型转换
- 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
- 字节大小(容量)->
- 低--------------------------------------------->高
- byte,short,char -> int -> long -> float -> double
复制代码
- 小数的优先级一定大于整数
- 运算中,不同类型的数据先转化为同一类型,然后再进行运算
强制类型转换
- 数据类型从高到低转换则为强制转换 (类型)变量名
- 数据类型从低到高转换则为自然转换,不需要添加任何字符
- //强制转换
- int i = 128; //128
- byte b = (byte) i; //-128
- double c = i; //128.0
- //精度问题
- System.out.println((int)23.7); //23.7
- System.out.println((int) -45.8f); //-48.8
- //类型转换
- char d = 'a';
- int e = d+1;
- System.out.println(e); //98
- System.out.println((char) e); //b
复制代码
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换为低容量时,需要进行强制转换
- 转换过程中可能出现内存溢出,或者精度问题
- int mon = 1000000000;
- int mon1 = 10_0000_0000;
- int year = 20;
- int total = mon*year;
- System.out.println(mon); //1000000000
- System.out.println(mon1); //1000000000
- System.out.println(total); //超出类型容量,为-1474836480
- long total1 = mon*(long)year;//将数据类型转换成更高数据类型,并在后面单位添加该类型
- System.out.println(total1); //输出正常,20000000000
复制代码
- 如果数值超出类型数据容量,则会内存溢出,并随机输出值
- 操作比较大的数值时,注意溢出问题
- JDK新特性,数值比较大时,可以用下划线分割,每4位分割
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |