强制类型转换是自动类型转换的逆过程。将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 () ,但可能造成精度降低或溢出,格外要注意。

    1. public class Main {
    2. public static void main(String[] args) {
    3. // 将 double 强制转换为 int
    4. int i = (int) 10.1; // 精度损失
    5. System.out.println(i); // 10
    6. // 将 int 强制转换为 byte
    7. int i1 = 1000;
    8. byte b = (byte) i1; // 数据溢出
    9. System.out.println(b); // -24
    10. // 强转符号只对最近的操作数有效,往往会使用小括号提升优先级
    11. // int i2 = (int) 10 * 1.5 + 10 * 1.5; // 无法通过编译,报错:不兼容的类型: 从double转换到int可能会有损失
    12. int i3 = (int) (10 * 1.5 + 10 * 1.5);
    13. // char 类型可以保存部分 int 的常量值,但不能保存 int 类型的变量值,需要强转
    14. int i4 = 97;
    15. char c1 = 97;
    16. // char c2 = i4; // 无法通过编译:不兼容的类型: 从int转换到char可能会有损失
    17. char c3 = (char) i4;
    18. }
    19. }