强制类型转换是自动类型转换的逆过程。将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 () ,但可能造成精度降低或溢出,格外要注意。
public class Main {public static void main(String[] args) {// 将 double 强制转换为 intint i = (int) 10.1; // 精度损失System.out.println(i); // 10// 将 int 强制转换为 byteint i1 = 1000;byte b = (byte) i1; // 数据溢出System.out.println(b); // -24// 强转符号只对最近的操作数有效,往往会使用小括号提升优先级// int i2 = (int) 10 * 1.5 + 10 * 1.5; // 无法通过编译,报错:不兼容的类型: 从double转换到int可能会有损失int i3 = (int) (10 * 1.5 + 10 * 1.5);// char 类型可以保存部分 int 的常量值,但不能保存 int 类型的变量值,需要强转int i4 = 97;char c1 = 97;// char c2 = i4; // 无法通过编译:不兼容的类型: 从int转换到char可能会有损失char c3 = (char) i4;}}
