1. 程式人生 > >Java中操作符使用的簡單介紹

Java中操作符使用的簡單介紹

操作符Operator
   一般情況下,不用去刻意記住操作符的優先順序,當不能確定操作符的執行順序時,可以使用圓括號來顯示指定運算順序。
  1) 賦值操作符

=      //int x=0,i=1,j=1;
     *=     //a*=b 等價於 a=a*b
     /=     // a/=b 等價於 a=a/b;
     %=   //a%=b 等價於 a=a%b;
     +=    //a+=b 等價於 a=a+b;
     -=     // a-=b 等價於 a=a-b;
  2) 比較操作符

     >    // 大於
     >=  // 大於等於
     <    // 小於
     <=   // 小於等於

     以上操作符只適用於整數型別和浮點數型別;

     int a=1,b=1;
     double d=1.0;
     boolean result1 = a>b;          //result1的值為false;
     boolean result2 = a<b;          //result2的值為false;
     boolean result3 = a>=d;        //result3的值為true;
     boolean result4 = a<=b;        //result4的值為true;             

     instanceof: 判斷一個引用型別所引用的物件是否是一個類的例項。該操作符左邊是一個引用型別,右邊是一個類名或介面名。形式如下:

                 obj instanceof ClassName
                 或者
                 obj instanceof InterfaceName

  3) 相等操作符                    

     ==  :   判斷是否等於
     !=  :   判斷是否不等於

     既可以是基本型別,也可以是引用型別:

     a. 基本型別:

        int a=1,b=1;
        float c=1.0f;
        double d=1.0;

        System.out.println(a==b);        //輸出true;
        System.out.println(a==c);        //輸出true;
        System.out.println(a==d);        //輸出true;
        System.out.println(c==d);        //輸出true;
     b. 引用型別:

        這兩個引用變數必須都引用同一個物件,結果才為true.

        Student s1 = new Student("zs",25,100);
        Student s2 = new Student("zs",25,100);
        Student s3 = s1;

        System.out.println(s1 == s2);    //輸出false;
        System.out.println(s1 == s3);    //輸出true;
        System.out.println(s2 == s3);    //輸出false;

  4) 數學運算操作符   
    
     +   :   資料型別值相加或字串連線;

     a. 資料型別值相加;

        int    a=1+2;                           //a值為3;
        double b=1+2;                       //b值為3.0;  
        double b=1+2.0;                    //c值為3.0;

     b. 字串連線;

        System.out.println(1+2+"a");          //輸出3a
        System.out.println(1+2.0+"a");        //輸出3.0a
        System.out.println(1+2.0+"a"+true);   //輸出3.0atrue
        System.out.println("a"+1+2);          //輸出a12
        System.out.println(1+"a"+2);          //輸出1a2

     /   :   整除, 如運算元均為整數,運算結果為商的整數部分

     int a1=12/5;                               //a1變數的取值為2
     int a2=13/5;                               //a2變數的取值為2
     int a3=-12/5;                              //a3變數的取值為-2
     int a4=-13/5;                              //a4變數的取值為-2
     int a5=1/5;                                 //a5變數的取值為0
     double a6=12/5;                           //a6變數的取值為2.0
     double a7=12/-5.0;                        //a7變數的取值為-2.4  
    
     %   :   取模操作符, 如運算元均為整數,運算結果為商的整數部分

     int a1=1%5;                                  //a1變數的取值為1
     int a2=13%5;                                //a2變數的取值為3
     double a3=1%5;                           //a3變數的取值為1.0
     double a4=12%5.1;                      //a4變數的取值為1.8000000000000007
    
  5) 移位操作符   

     >>  :  算術右移位運算,也稱做帶符號右移位運算。

     int a1 = 12 >> 1;                          //a1變數的取值為6;
     0000 1100    12
     -----------
      000 0110    >>1
     -----------
     0000 0110    補位 因為是正數所以補0  結果為6

     int a2 = 128 >> 2;                         //a2變數的取值為32;
     int a3 = 129 >> 2;                         //a3變數的取值為32;                
     int a5 = -12 >> 1;                          //a5變數的取值為-6;
 0000 1100    12
 ---------
 1111 0011    取反
 ---------
 1111 0100    +1  這個就是-12的二進位制形式
 ----------
  111 1010    >>1

 1111 1010    補位 因為是負數所以補1  這個負數就是最終結果
 ---------
 1111 1001    -1
 ---------
 0000 0110    取反 結果為6 所以上面的最終結果是 -6

     int a6 = -12 >> 2;                         //a6變數的取值為-3;
 
 0000 1100     12
 ---------
 1111 0011     取反
 ---------
 1111 0100     +1  這個就是-12的二進位制形式
 ----------
   11 1101     >>2
 
 1111 1101     補位 因為是負數所以補1  這個負數就是最終結果
 ---------
 1111 1100     -1
 ---------
 0000 0011     取反 結果為3 所以上面的最終結果是 -3

     注:a. 對12右移一位的過程為:捨棄二進位制數的最後一位,在二進位制數的開頭增加一位符號位,由於12是正整數,因此增加的符號位為0;
         b. 對-12右移兩位的過程為:捨棄二進位制數的最後倆位,在二進位制數的開頭增加兩位符號位,由於-12是負整數,因此增加的符號位為1;


     >>> :  邏輯右移位運算,也稱為不帶符號右移位運算。

     int a1 = 12 >>> 1;                          //a1變數的取值為6;
     int a2 = -12 >>> 2;                         //a2變數的取值1073741821;                  

     注:a. 對12右移一位的過程為:捨棄二進位制數的最後一位,在二進位制數的開頭增加一個0;
         b. 對-12右移二位的過程為:捨棄二進位制數的最後二位,在二進位制數的開頭增加二個0;

     << :  左移位運算,也稱為不帶符號左移位運算。

     int a1 = 12 << 1;                          //a1變數的取值為24;
     int a2 = -12 << 2;                         //a2變數的取值為-48;                  
     int a3 = 128 << 2;                         //a3變數的取值為512;
     int a4 = 129 << 2;                         //a4變數的取值為516;   

     注:a. 對12左移一位的過程為:捨棄二進位制數的開頭一位,在二進位制數的尾部增加一個0;
         b. 對-12左移二位的過程為:捨棄二進位制數的開頭二位,在二進位制數的尾部增加二個0;

  6) 位運算操作符 

     &   :   與運算,對兩個操作元的每個二進位制位進行與運算,運算規則為:1&1->1, 1&0->0, 0&1->0, 0&0->0;  
     |   :   或運算,對兩個操作元的每個二進位制位進行或運算,運算規則為:1|1->1, 1|0->1, 0|1->1, 0|0->0;
     ^   :   異或運算,對兩個操作元的每個二進位制位進行或運算,運算規則為:1^1->0, 0^0->0,1^0->1, 0^1->1,; 相同為0 不同位1  運算特點: a^0=a; a^a=0;
     ~   :   取反運算, ~1->0, ~0->1;

  7) 邏輯操作符
 
     短路操作符,如果能根據操作左邊的布林表示式就能推算出整個表示式的布林值,將不執行操作符右邊
     的布林表示式;

     &&  :   左邊的布林表示式的值為false, 整個表示式值肯定為false, 此時會忽略執行右邊的布林表示式。
     ||  :   左邊的布林表示式的值為true, 整個表示式值肯定為true, 此時會忽略執行右邊的布林表示式。 

  8) 條件操作符
     三目運算
     布林表示式 ? 表示式1 : 表示式2

     如果布林表示式的值為true, 就返回表示式1的值, 否則返回表示式2的值。

     int score = 61;
     String result = score>=60?"及格":"不及格";  

 以上就是操作符的使用