Java 数据类型的自动转换和强制转换

Java 数据类型的自动转换和强制转换

自动转换

自动转换适用于低位数类型向高位数类型的转换

规则:

  1. 对于算术运算按照下图所示规则转换

    graph LR
    A[byte] --> B[short] 
    B --> C[int]
    C --> D[long]
    D --> E[float]
    E --> F[double]
    G[char] --> C
    
  2. 对于赋值运算:当两种类型兼容时(如整型和浮点型相互兼容),低位类型会自动向高位类型转换

  3. 布尔类型不能和其他基本数据类型相互转换

// 示例:
int x = 100;
long y = x; // 在赋值时int型自动转换为long型
double z = x + y; // 在算术运算时int型先转换为long型再运算,运算结果转换为double型再赋值

强制转换

强制转换适用于高位类型向低位类型的转换。

  • 语法:用()标注需要强制转换成的类型

    // 示例:
    int x;
    x = (int)34.56 + (int)11.2; // x = 45,丢失精度
    byte y = (byte)x;
    

你可能感兴趣的:(Java 数据类型的自动转换和强制转换)