1. 程式人生 > 其它 >013_JAVA基礎語法_運算子

013_JAVA基礎語法_運算子

一、JAVA語言運算子

二、重點掌握

  1. 算數運算

    • 算術運算中存在比int容量高的型別,則結果型別為高容量的型別,否則結果就為int;

      long a = 1234567890122345L;
      int b = 123;
      short c = 10;
      byte d = 8;
      System.out.println(a+b+c+d); //Long
      System.out.println(b+c+d);  // int
      System.out.println(c+d);    // int

       

    • 自增自減注意事項

      • ++,-- 在變數後面時,執行玩這段程式碼後,變數才會增加或減少;

      • ++,-- 在變數前面時,執行玩這段程式碼前,變數先增加或減少;

    • 很多的算數運算會使用工具類來操作。

      b=a++//執行完這局程式碼後,先賦值再自增
      b=++a;//執行完這局程式碼前,先自增,再自增  
  2. 關係運算符返回的結果為布林值

    • ==只能使用在基礎型別中,以及物件和null比較時;

    • 當物件和物件比較想使用“==”判斷時,應該使用equals來判斷。

  3. 邏輯運算子

    • 邏輯與(&&)運算,兩個為true才為true;邏輯或(||)運算,兩個為false才為false;邏輯非(!)運算,為true則結果為false,為false則結果為true

    • 短路運算

      • 邏輯與(&&)時,前一個邏輯表示式為false,則後面的邏輯表示式不再進行判斷;其結果為false;

      • 邏輯或(||)時,前一個邏輯表示式為true,則後面的邏輯表示式不再進行判斷;其結果為true。

      boolean flag = true;
      boolean flag1 = false;
      System.out.println("flag && flag1 :"+(flag && flag1)); //flag && flag1 :false
      System.out.println("flag || flag1 :"+(flag || flag1)); //flag || flag1 :true
      System.out.println("!(flag && flag1) :"+!(flag && flag1)); //!(flag && flag1) :true
      //短路運算
      int num =4;
      boolean flag2 = (num < 4) && (num++<4);
      System.out.println(num); //4
      System.out.println(flag2); //false

       

  4. 位運算子

    • & 都為1,結果為1

    • | 都為0,結果為0

    • ^ 相同為0,不同為1

    • ~ 取反

      A = 0011 1100
      B = 0000 1101
      A & B = 0000 1100
      A | B = 0011 1101
      A ^ B = 0011 0001
      ~A = 1100 0011

       

    • 左移(<<) *2

    • 右移(>>) /2 (尖尖只哪邊往哪邊移)

      //2*8 如何計算最快? 2*2*2*2

       

  5. 三元運算子(條件運算子 ?:)

    • 必須掌握

    • 格式 x ?y :z

    • 如果x為true,則結果為y;否則結果為z

      int score = 50;
      String type = score < 60 ? "不及格" : "及格";
      System.out.println(type);  //不及格
  1. 擴充套件賦值運算子(用於偷懶使用,程式碼簡潔)

    int number1 = 10;
    int number2 = 20;
    number1+=number2;   //number1=number1+number2;
    number1-=number2;   //number1=number1-number2;

     

三、擴充套件

  1. 字串連線符 +

    (面試題)String型別在字元連線符前面則其他運算元也會轉換為String型別

    int number1 = 10;
    int number2 = 20;
    System.out.println(""+number1+number2); //1020
    System.out.println(number1+number2+""); //30
  2. 運算子優先順序(瞭解並熟悉)