自动类型转换
小类型转大类型时,会是自动转换
小类型转大类型 同类
// 自动类型转换(同类间的转换)
// 小类型转大类型,会自动转
byte a = 1;
int b = a;
System.out.println(b);
小类型转大类型(近亲类)
// 自动类型转换(不为同类的转换,近亲的转换)
int m = 6;
double n = m;
System.out.println(n);
强制类型转换
大类型转小类型时,需要强制类型转换
同类型
byte a = 1;
int b = a;
byte c = (byte) b;
System.out.println(c);
近亲类型
int m = 6;
double n = m;
System.out.println(n);
int k = (int)n;
System.out.println(k);
自动类型提升
// 两个数相加 有一个为double,结果一定是double类型
double res = 1.2 + 6;
// 如果有一个数是float类型,结果一定是float
float a = 2.3f;
float b = a + 2;
// 如果有一个为long,结果一定是long
long m = 1;
long n = m + 10;
// 上述都不满足,有一个为int,结果就是int
int p = 2;
int k = p + 3;
// 上述都不满足
// byte short
byte x = 1;
short y = 2;
int mm = x + y;
类型的大小排行榜
double>float>long>int>short>byte
如果 x + y
结果是什么类型由什么决定?
由大的决定
但是保底的数据类型是int
double + int ----> double
float + byte ----> float
byte + short ----> int