-
数值类型超出范围不能赋值(c语言可以)
-
自动类型装换
short b = 12;
java默认数值是int类型(也就是说等号左边的12是int类型),但是没有超过右边的short类型的取值范围时会自动进行类型转换。
但是double 赋值给 float没超过取值范围也不能自动类型转换
-
给long类型赋值的坑
long = 12345678909;
上面的代码会报错,因为java默认数值类型为int(也就是左边的数字是int类型),而12345678909超出了int的范围(没有超出long的范围,事实上是等号左边报错。)
这个时候应该写成
long = 12345678909l;
long = 12345678909L;
-
默认类型为int、double
-
强制类型转换
float y = (float)0.87;
-
整数类型和字符类型可以相互转换
-
整数可以给字符类型直接赋值(范围是0~65535)
char ch = 100;
-
字符类型强制转换之后可以给整数类型赋值
int b = (int)'男';
-
类型之间的转换
- 自动类型转换(隐式类型转换)
- 强制类型转换(显式类型转换)