【Java专题】自动类型转换

除boolean类型外,Java七种基本数据类型可自动转换。容量小的数据类型可以自动转换为容量大的数据类型。
容量指表数范围而非字节数。

/images/java/java-01.png

图中,实线表示无数据丢失的转换,虚线表示可能会损失精度。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class TestAutoConvert {
public static void main(String[] args) {
byte b1 = 123;
short sh1 = b1;
int i1 = sh1;
long l1 = i1;
System.out.println("l1 = " + l1);

char c1 = 'a';
c1 = 97;
// char c2 = i1; // int 到 char 报错
int i2 = c1;

double d1 = i2;
// int i3 = d1; // double -> int 报错

float f1 = 3.1f;
double d2 = f1;
// float f4 = d2; // double -> float 报错

float f2 = i2;
// int i3 = f2; // float -> int 报错
float f3 = l1;
// long l2 = f3; // float -> long 报错
double d3 = l1;
long l2 = d3; // double -> long 报错
}
}