基本类型自动转换
float f = 1.1 // 编译错误 “possible lossy conversion from double to float”
1.1默认是double类型,这里为向下转型(double -> float),Java 不能隐式执行向下转型,但可以隐式执行向上转型。
float f = 1 // 编译通过
1默认为int类型,向上转型可以隐式执行。
float f = 1.1f // 编译通过
这里声明1.1是float类型,则无需类型转换。
+=, -=, *=, /=
这几个运算符可以执行隐式类型转换,即自动向下转型:
int i = 3;
i += 1.0; // 编译通过 (自动转型,1.0默认为double类型)
i = i + 1.0; // 编译不通过
System.out.println(i);