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. 基本型別:
b. 引用型別: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;
這兩個引用變數必須都引用同一個物件,結果才為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?"及格":"不及格";
以上就是操作符的使用