java数据类型的转换

自动类型转换

隐式转换

特点:代码不需要进行特殊处理,自动完成

规则:数据范围从小到大

安全性:安全

1
2
3
4
5
6
7
8
9
10
11
12
public class Main {
public static void main(String[] args) {
long num1 = 100; // int -> long
System.out.println(num1);

double num2 = 2.5F; // float -> double
System.out.println(num2);

float num3 = 3000L; // long -> float
System.out.println(num3);
}
}

强制类型转换

显式转换

特点:代码需要进行特殊的格式处理,不能自动完成

格式:范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据

安全性:不安全,可能精度丢失或者数据溢出

1
2
3
4
5
6
7
8
9
10
11
12
public class Main2 {
public static void main(String[] args) {
int a = (int)30L; // long -> int
System.out.println(a); // 30

int num = (int) 6000000000L;
System.out.println(num); // 1705032704

int num2 = (int)3.99F;
System.out.println(num2); // 3
}
}

注意事项

  1. 强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。
  2. byte/short/char这三种类型都可以发生 数学运算,例如加法“+”。
  3. byte/short/char这三种类型在运算的时候,都会首先提升为int类型,然后再计算。
  4. boolean类型不能发生数据类型转换。

java数据类型的转换
https://blog.wangxk.cc/2020/08/17/java数据类型的转换/
作者
Mike
发布于
2020年8月17日
许可协议