Java运算符的那些事(最全知识点)

Java运算符的那些事(最全知识点)

1. 算术运算符的基本用法

  • 运算符:
    • 用于对常量和变量进行操作的符号
  • 表达式:
    • 用运算符连接起来的, 符合Java语法的式子.
    • 不同的运算符连接的表达式是不同类型的表达式
      • 如:
        • a + b: 算术表达式
        • a = b: 赋值表达式
        • a > b: 关系表达式
        • a && b: 逻辑表达式
  • 5种运算符:
    1. 算数运算符
      • +: 加
      • -: 减
      • *: 乘
      • /: 除 (整数相除结果是整数, 有浮点数参与运算, 结果才为浮点数) 除法: 4 / 3 商1 余1
      • %: 取余
      • ++: 自增1
      • --: 自减1
    2. 赋值运算符
    3. 关系运算符
    4. 逻辑运算符
    5. 三元运算符
  • 注意:
    • 整数相除只能得到整数, 有小数参与运算才能得到小数
      • 如: 10 / 3 = 3, 10.0 / 3 = 3.33333333335

2.算术运算符取余和除法的区别

  • 取余:
    • 两数相除后的余数, 5 % 3 = 2
  • 除法:
    • 两数相除后的商, 5 / 3 = 1

3.字符和字符串参与加法操作

  • 字符参与加法运算:

    • 其实是拿字符在计算机中存储的数据值来参与运算的

      • ‘A’ = 65
      • ‘a’ = 97
      • ‘0’ = 48
    • 注意:

      • char类型在算数运算时按照数值来计算
      • 如果打印的是char类型, 则打印出的是数值所代表的字符, 而不是数值
      • 如果打印的是char和数字计算的结果, 因为运算会有隐式类型转换, 所以最终打印的是数字
      System.out.println('A');       // 打印字符A
      System.out.println('A' + 0);   // 打印65. 因为char与int计算, char类型提升为int, 最终计算结果	是int类		型, 65 + 0 = 65. 相当于System.out.println(65);
      
  • 字符串参加加法(拼接)

    • 其实不做加法运算, 而是拼接字符串
      • System.out.println("hello" + 10);: hello10
      • System.out.println(10 + 20 + "hello");: 30hello
        • 注意: 10 + 20 + "hello"中, 10和20会先进行算术加法得到30, 才能和字符串"hello"拼接
      • System.out.println(10 + 10 + "");: 20

4.算术运算符++和–的用法

  • ++: 自增, 用于对变量加一
  • --: 自减, 用于对变量减一
  • 运算符放在变量前和变量后的区别:
    • 单独使用时(即只有i++;++i;), 没有区别, 都是自增
    • 参与其他操作时:
      • int a = i++:
        • 先使用i本身的值作为i++表达式的值
        • 然后i再自增(i自增后不影响之前i++表达式的值)
        • 最后将等号右边的值赋值给左边a
      • int a = ++i:
        • i先自增
        • 然后将自增后的值作为++i表达式的值
        • 最后将等号右边的值赋值给左边
          --同理

5.赋值运算符的基本用法和扩展用法

  • 基本赋值运算符:
    • =: 将等号右边的值赋给左边的变量, int a = 10;
  • 扩展赋值运算符:
    • +=: 将运算符左边和右边的数据做加法, 然后将结果赋值给左边. a += 10; 相当于 a = (a的类型)(a + 10);
    • -=: 将运算符左边和右边的数据做减法, 然后将结果赋值给左边. a -= 10; 相当于 a = (a的类型)(a - 10);
    • *=: 将运算符左边和右边的数据做乘法, 然后将结果赋值给左边. a *= 10; 相当于 a = (a的类型)(a * 10);
    • /=: 将运算符左边和右边的数据做除法, 然后将结果赋值给左边. a /= 10; 相当于 a = (a的类型)(a / 10);
    • %=: 将运算符左边和右边的数据做取余, 然后将结果赋值给左边. a %= 10; 相当于 a = (a的类型)(a % 10);
    • 注意: 扩展赋值运算符隐含了强制类型转换
      • a += 10; 相当于 a = (a的类型)(a + 10);

6.关系运算符的基本用法和注意事项

  • 关系运算符
    • ==: 相等
    • !=: 不等
    • >: 大于
    • >=: 大于等于
    • <: 小于
    • <=: 小于等于
  • 关系运算符的结果是:
    • boolean类型的值
  • 注意区分===, 别写错

7.逻辑运算符

  • 比较两边的条件
    • &: 与, 并且. 两边同时成立则true, 只要有一边不成立(false), 就为false
    • |: 或, 或者. 两边只要有一边成立则true, 两边都是false则false
    • ^: 异或. 两边相同false, 两边不同true
      • 男:true, 女:false, 男女(或女男)才是真爱, 所以是true, 男男或女女都是false
    • !: 非, 取相反的结果, 只和一边有关

8.逻辑运算符&&和&的区别

  • &: 与. 两边同时为true则为true, 否则为false
  • |: 或. 两边有任意一个true则为true, 否则为false
  • &&: 逻辑与(短路与). 只要左边是false, 则不判断右边, 直接false
  • ||: 逻辑或(短路或). 只要左边是true, 则不判断右边, 直接true

9. 三元运算符的基本使用

  • 三元运算符的格式: (关系表达式)? 表达式1 : 表达式2;
  • 三元运算符的执行流程:
    1. 先计算关系表达式的布尔值
    2. 如果是true, 则表达式1是结果; 如果是false, 则表达式2是结果
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章