java数值类型转换

自动转换

  • 将 取值范围小的类型 自动提升为 取值范围大的类型

    byte a = 3;
    int b = 3;
    int c = a + b; // b 自动转换为int类型
    
  • byteshortchar运算时自动转为int

  • 转换规则

    byteshortchar‐‐>int‐‐>long‐‐>float‐‐>double

强制转换

  • 将 取值范围大的类型 强制转换成 取值范围小的类型 ,需要手动执行

    int a = (int)1.5; // a 的值为1,强制转换发生了精度损失
    
  • 赋值运算符(+=-=/=*=)带有强制转换的特点

    short num0 = 3;
    short num1 = 3;
    num1 += num0; // 相当于 num1 = (byte)(num1 + num0)
    num1 = num1 + num0; // 报错;num1 + num0运算时,num1 和 num0 自动转为int类型
    
posted @ 2020-10-23 21:11  遥远的相似性  阅读(44)  评论(0)    收藏  举报