day04类型转换+运算符

day04类型转换+运算符

一、类型转换

  1. 数据类型由小到大的排序

    byte short int(char) long float double

  2. 自动类型转换/隐式类型转换:

    小类型转大类型

  3. 强调类型转换

    1. 大类型转换成小类型
    2. 语法:(要转换成的类型)变量
    3. 强调类型转换需要考虑范围问题,可能会存在溢出
    4. double类型转换成int类型,存在精度丢失问题
  4. 两点规则

    1. 整数直接量可以赋值给byte short char,但是不能超出范围
    2. byte short char型数据参与运算时,系统一律将其转换成int类型。

二、运算符

  1. 算数运算符

    • +,-,*,/,%

      1. byte b1 = 3;
      2. byte b2 = 4;
      3. byte b3 = b1 + b2;
      4. byte b4 = 3 + 4;
      
      问:第三行代码和第四行代码是否会报错?为什么?
      byte b3 = b1 + b2;编译错误,因为byte类型的数据参与运算,会自动转换为int类型,所以计算的结果是int类型。
      byte b4 = 3 + 4;不会报错,在JDK1.7做出了优化,在编译过程中会直接计算3+4=7,然后将7赋值给b4
      如果计算结果不超过范文,不报错,正常赋值,如果超范围,编译会报错
      
    • /除法

      注意:

      1. 除数不能为0,如果除数为0,被除数为整数,程序编译没有问题,但是运行会抛出异常,程序就会崩溃而停止导致退出。

      2. 正浮点数/0:Infinity(无穷大)

        负浮点数/0:-Infinity(无穷小)

    • ++ --自增,自减

      • 如果变量单独使用++,--,++--在变量之前和在变量之后没有区别,都是在变量原基础上加/减1
      • 如果++--参与到运算中,则
        • 如果++ --在变量之后,先参与运算,再++ --
        • 如果++ --在变量之前,先++ --,再进行运算
  2. 关系运算符(比较运算符)

    • < , > , >= , <= , ==, !=

      关系运算符的结果为boolean值,关系成立则返回true,关系不成立则返回false

  3. 逻辑运算符

    &&(与) ||(或) !(非) ^(异或)

    1. 逻辑运算时建立在关系运算的基础之上的
    2. 逻辑运算符的结果也是boolean类型
    3. 整型数据异或两次相同的数据得到的结果依然是它本身
posted @ 2023-07-27 22:12  御坂美琴丷  阅读(17)  评论(0)    收藏  举报