强制类型转换

/*
1、小容量可以直接赋值给大容量,称为自动类型转换。
2、大容量不能直接赋值给小容量,需要使用强制类型转换符进行强转。
但需要注意的是:加强制类型转换符之后,虽然编译通过了,但是运行
的时候可能会损失精度。
*/
public class 强制类型转换{
  public static void main(String[] args){

    // 不存在类型转换
    // 100L是long类型字面量,x是long类型字面量。
    long x = 100L;

    // x是long类型,占用8个字节,而y变量是int类型,占4个字节。
    // 在java语言中,大容量可以直接赋值给小容量吗?
    // 编译错误信息:错误:不兼容的类型:从long转换到int可能会有损失。
    // int y = x;

    // 大容量转换成小容量,要想编译通过,必须加强制类型转换符,进行强制类型转换。
    // 底层是怎么进行强制类型转换的呢?
    // long类型:000000000 000000000 000000000 000000000 000000000 000000000 000000000 01100100
    // 以上的long类型100L强转为int类型:会自动将"前面的"4个字节砍掉。:000000000 000000000 000000000 01100100

    int y = (int)x; // 这个(int)就是强制类型转换符,进行强制类型转换。
    // 但是要记住:编译虽然过了,但是运行可能会损失精度。
    System.out.println(y); //

    //定义变量a int类型,赋值100
    int a = 100;
    System.out.println(a);

    int b = a; // 将变量a中保存的值100复制一份给b变量。
    System.out.println(b);
  }
}

上一篇:第002篇 前端的核心规则


下一篇:rtthread pwm设备控制led小灯亮度