運算符
java提供豐富運算符,大概分為算術(shù)數(shù)運算符
,關(guān)系運算符
,位運算符
,邏輯運算符
,賦值運算符
算術(shù)運算符
該運算符就在數(shù)學上的應(yīng)用一樣
操作符 | 描述 | 例子 |
---|---|---|
+ | 加法 | A+B |
- | 減法 | A-B |
* | 乘法 | A*B |
/ | 除法野瘦,取商 | A/B |
% | 取余數(shù) | A%2 |
++ | 自增 | A++,++A |
-- | 自減 | C--,--C |
注意: A++,++A的區(qū)別
例子:
int a =3;
int b = a++; //實際打印b=3
//第一次打印a=4
int c = ++a; //實際打印c=4
//第二次打印a=5
解析:
運算拆分
int a =3
int b =a++;
a = a+1 =4
b = 4;
a = 4;
++a,--a,先進行自增(自減)運算描沟,在進行表達式運算
a++,a--,先進行表達式運算,再進行自增(自減)運算
關(guān)系運算符
操作符 | 描述 | 例子 |
---|---|---|
== | 檢查兩個值是否相等,是返回true,反之返回false | A==B |
鞭光!= | 檢查兩個值吏廉,不相等則返回true,反之返回false | A!= B |
> | 檢查左邊值是否大于右邊值,是的返回為true,反之返回false | A>B |
< | 檢查左邊值是否小于右邊值惰许,是的話返回為true,反之返回false | A<B |
>= | 檢查左邊值是否大于等于右邊值席覆,是返回為true,反之返回false | A>=B |
<= | 檢查左邊值是否小于等于右邊值,是返回為true,反之返回false | A<=B |
位運算符
java定義的位運算符汹买,適用于byte,short,char,int,long等類型
位運算符在所有的位上佩伤,并且按位運算
舉例:A=60,B=13,以下用二進制表示
A = 0 0 1 1 1 1 0 0
B = 0 0 0 0 1 1 0 1
A&B = 0 0 0 0 1 1 0 0
A|B = 0 0 1 1 1 1 0 1
A^B = 0 0 1 1 0 0 0 1
~A = 1 1 0 0 0 0 1 1
A<<2= 1 1 1 1 0 0 0 0
A>>2= 1 1 1 1
A>>>2=0 0 0 0 1 1 1 1
操作符 | 描述 | 例子 |
---|---|---|
& | 相對應(yīng)位均為1的話,則為1晦毙,反之為0 | A&B |
| | 相對應(yīng)位均為0的話生巡,則為0,反之為1 | A|B |
^ | 相對應(yīng)位均相等的話见妒,則為0孤荣,反之為1 | A^B |
~ | 取反運算符,1變0须揣,0變1 | ~a |
<< 2 | 左邊的值的位向左移動2位 | A<<2 |
>>2 | 左邊的值的位向右移動2位 | A>>2 |
>>>2 | 左邊的值的位向右移動2位,移動均以0補充 | A>>>2 |
邏輯運算符
操作符 | 描述 |
---|---|
&& | 與運算符盐股,兩者為真,才返回true,反之false |
| | | 或運算符耻卡,兩者其一為真疯汁,即返回true,反之為false |
! | 非運算符,將操作值的邏輯狀態(tài)反轉(zhuǎn)卵酪,true變false涛目,false變true |
賦值運算符
操作符 | 描述 | 例子 | |
---|---|---|---|
= | 將右邊值賦給左邊值 | C=A+B | |
+= | 將左值加上右值重新賦給左邊值 | C+=A | C=C+A |
-= | 將左值減去右值重新賦給左邊值 | C-=A | C=C-A |
*= | 將左值乘于右值重新賦給左邊值 | C*=A | C=C*A |
/= | 將左值除于右值得到商重新賦給左邊值 | C/=A | C=C/A |
%= | 將左值除于右值得到余數(shù)重新賦給左邊值 | C%=A | C=C%A |
<<= | 將左值的位向左移右操作值位數(shù)重新賦給左邊值 | C<<=2 | C=C<<2 |
>>= | 將左值的位向右移右操作值位數(shù)重新賦給左邊值 | C>>=2 | C=C>>2 |
&= | 按照按位與賦值 | C&=2 | C=C&2 |
^= | 按照按位異或賦值 | C^=2 | C=C^2 |
| = | 按照按位或賦值 | C | =2 | C=C | 2 |
三目運算符
該運算符有三個操作數(shù),并需要判斷布爾型的值凛澎,來確定講那個數(shù)賦值給變量
真返回霹肝?后面的值來賦值,反之拿:后面值來賦值
int a = 0;
int b = 3;
//這處a=20塑煎,由于3小于5,饶弧:后的值賦值給a
int a = (b>5)?10:20
//這處a=10,由于3大于0,取讯赏?后的值賦值給a
int a = (b>0)?10:20
instanceof運算符
該運算符用于操作對象實例,檢查該對象是否指定對象(類或者接口),滿足則返回true,反之為false
如:
String name ="Stuart";
//此處這里是返回 true
boolean result = name instanceof String
運算符優(yōu)先級
優(yōu)先級 | 類型 | 操作符 | 關(guān)聯(lián)性 |
---|---|---|---|
1 | 符號 | () [] . | 從左到右 |
2 | 一元 | +(正) -(負) ! ~ | 從右到左 |
3 | 乘除 | * / % | 從左到右 |
4 | 加減性 | + - | 從左到右 |
5 | 移位 | >> >>> << | 從左到右 |
6 | 關(guān)系 | > >= < <= instanceof | 從左到右 |
7 | 相等 | == 垮兑!= | 從左到右 |
8 | 按位與 | & | 從左到右 |
9 | 按位異或 | ^ | 從左到右 |
10 | 按位或 | | | 從左到右 |
11 | 邏輯與 | && | 從左到右 |
12 | 邏輯或 | || | 從左到右 |
13 | 三目運算 | ?: | 從右到左 |
14 | 賦值 | = += -= ^= %= /= ~= >>= <<= >>>= | 從右到左 |
優(yōu)先級按照從高到低的順序書寫,也就是優(yōu)先級為1的優(yōu)先級最高漱挎,優(yōu)先級14的優(yōu)先級最低
結(jié)合性是指運算符結(jié)合的順序系枪,通常都是從左到右。從右向左的運算符最典型的就是負號磕谅,例如3+-4私爷,則意義為3加-4,
符號首先和運算符右側(cè)的內(nèi)容結(jié)合膊夹。
注意區(qū)分正負號和加減號衬浑,以及按位與和邏輯與的區(qū)別