什么是强制类型转换?

强制类型转换:将 取值范围大的类型 强制转换成 取值范围小的类型 。

特点:自动转换是Java自动执行的,而强制转换需要我们自己手动执行。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

转换格式:

强制类型转换 随笔 第1张

代码举例:

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);

    }
}

执行结果:

强制类型转换 随笔 第2张

注意事项:

  • 强制类型转换一般不推荐使用,因为有可能发生精度损失或者数据溢出
  • 浮点数转换成为整数,直接取消小数点,可能造成数据损失精度
  • int强制转换成为short砍掉2个字节,可能会造成数据丢失
  • byte/short/char 这三种类型都可以发生数学运算。
  • byte/short/char 这三种类型在数学运算的时候,都会被首先提升为int类型,然后在计算、
  • boolean类型不能发生数据类型转换
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄