强制类型转换
什么是强制类型转换?
强制类型转换:将 取值范围大的类型 强制转换成 取值范围小的类型 。
特点:自动转换是Java自动执行的,而强制转换需要我们自己手动执行。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。转换格式:
代码举例:
package com.wu.day02; public class Demo02DataType { public static void main(String[] args) { long l = 200L; // long ----> int类型。需要强制类型转换 int i = (int) l; System.out.println(i); float f = 3.14F; // float ---->long 。范围大转换为范围小的 l = (long) f; //浮点数转换为整数类型会损失精度。只保留整数,舍弃小数 System.out.println(l); // double --- >float 浮点数范围大转换为浮点数范围小的,损失精度 double d = 6565.213463657567433434; f = (float) d; System.out.println(f); // 当范围大的数值超过了范围小的类型的最大取值范围,强制转换会数据溢出,得不到我们期望的数值 int j = 21566565; byte b = (byte) j; System.out.println(b); } }
执行结果:
注意事项:
- 强制类型转换一般不推荐使用,因为有可能发生精度损失或者数据溢出
- 浮点数转换成为整数,直接取消小数点,可能造成数据损失精度
- int强制转换成为short砍掉2个字节,可能会造成数据丢失
- byte/short/char 这三种类型都可以发生数学运算。
- byte/short/char 这三种类型在数学运算的时候,都会被首先提升为int类型,然后在计算、
- boolean类型不能发生数据类型转换

更多精彩