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是結果
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章