类型转换

Java中数据类型转换可以分为两类:隐式类型转换和显示类型转换。

说在前面

  1. boolean 类型因为其自身的特殊性,不存在任何形式的类型转换;
  2. 在Java中,对于为声明类型的常量,整数则默认类型为int类型;浮点数则默认类型为double;

隐式类型转换

  1. Jvm编译期间自动进行的类型转换;
  2. 整数类型(byte/short/int/long)之间,占用字节数少的类型变量赋值给另外一个占用字节数多的类型变量;
    如下:
    1
    2
    3
    4
    5
    6
    7
    int x = 30;
    byte bb1 = 30;//这里30是int类型,Jvm编译过程中进行隐式类型转换成了byte类型
    byte bb2 = x;//这里编译报错,因为x已经声明为int类型,赋值给bb2需要强制类型转换
    byte bb3 = (byte)x;//编译正确
    long y = x;//编译正确
    long z = 10000000000;//编译报错,这里10000000000已经超过int类型能表示的范围了
    long z2 = 10000000000L;//编译正确

显示类型转换

  1. 整数类型(byte/short/int/long)之间,占用字节数多的类型变量赋值给另外一个占用字节数少的类型变量;
    如下:
    1
    byte bb3 = (byte)x;//编译正确