一.算數(shù)運(yùn)算符
- 基本四則運(yùn)算符 + - * / %(使用規(guī)則簡(jiǎn)單,,正常使用即可)
注意事項(xiàng): a) int/int 結(jié)果還是 int 要保留小數(shù)需要使用double來(lái)計(jì)算
int a = 1;
int b = 2;
System.out.println(a/b);
//結(jié)果為0
b)0不能作為出除數(shù) c)%表示取余不僅僅可以對(duì)int求模,也能對(duì)double求模
System.out.println(11.5 % 2.0);
//輸出1.5
-
增量賦值運(yùn)算符 (+= . -= . *= . /= . %= )
-
自增自減運(yùn)算符 (++ . --)
-
語(yǔ)言 |
方法 |
4650 |
8DbgUuqr1R |
A286P |
抖音老板是誰(shuí) |
5904 |
2007.03.03 11-03-13 |
注意: 1.java中在循環(huán)中盡量使用后置++ 2.前置++ – (先++ – 后使用) 3.后置++ --(先使用,,后++ --)
二.關(guān)系運(yùn)算符
六個(gè)關(guān)系運(yùn)算符:(== ,,!=,,< ,,> ,<= ,,>=) **注意:**用法簡(jiǎn)單,,值得關(guān)注的是關(guān)系運(yùn)算符表達(dá)式的返回值都是布爾類(lèi)型
三.邏輯運(yùn)算符(重點(diǎn))
邏輯運(yùn)算符主要有三個(gè)(&& ,|| ,, ?。?/strong> **注意:**邏輯運(yùn)算符的操作數(shù)(操作符往往是關(guān)系運(yùn)算符的結(jié)果)和返回值都是布爾類(lèi)型
- 邏輯與 &&
規(guī)則:兩個(gè)操作數(shù)都為true ,結(jié)果為true,,否則結(jié)果為false
- 邏輯或 ||
規(guī)則:兩個(gè)操作數(shù)都為false,,結(jié)果為false,否則結(jié)果為true
- 邏輯非 ,!
規(guī)則: 操作數(shù)為true,,結(jié)果為false,操作數(shù)為false,,結(jié)果為true(這是個(gè)單目運(yùn)算符,,只有一個(gè)操作數(shù))
- 應(yīng)用:短路求值
System.out.println(10 > 20 && 10 / 0 == 0); //打印false
System.out.println(10 < 20 || 10 / 0 == 0); //打印true
結(jié)論: 1.對(duì)于&&,如果左側(cè)表達(dá)式為false,,則表達(dá)式的整體的值一定是false,,無(wú)需計(jì)算右側(cè)表達(dá)式。 2.對(duì)于||,,如果左側(cè)表達(dá)式為true,,則表達(dá)式的整體的值一定是true,,無(wú)需計(jì)算右側(cè)表達(dá)式。
- & 和 | (不推薦使用)
& 和 | 如果操作數(shù)為boolean 的時(shí)候,,也表示邏輯運(yùn)算,,但是和&&及||相比,它們不支持短路求值,。
System.out.println(10 > 20 && 10 / 0 == 0); //程序拋出異常
System.out.println(10 < 20 || 10 / 0 == 0); //程序拋出異常
四.位運(yùn)算符
Java中對(duì)數(shù)據(jù)的操作的最小單位不是字節(jié),,而是二進(jìn)制 位運(yùn)算符主要有四個(gè):(& , | ,, ~ ,,^) 位操作表示按二進(jìn)制位運(yùn)算,計(jì)算機(jī)中都是使用二進(jìn)制來(lái)表示數(shù)據(jù)的(01構(gòu)成的序列),,按位運(yùn)算就是在按照二進(jìn)制位的每一位依次進(jìn)行計(jì)算
- 按位與 &:如果兩個(gè)二進(jìn)制為都是1,,則結(jié)果為1,否則為0
int a = 10; //10的二進(jìn)制為1010
int b = 20; //20的二進(jìn)制為10100
System.out.println(a & b);
按位或 | :
int a = 10;
int b = 20;
System.out.println(a | b);
注意: 當(dāng)& 和 | 的操作數(shù)為整數(shù)(int short long byte)的時(shí)候,,表示按位運(yùn)算,,當(dāng)操作數(shù)為boolean的時(shí)候,表示邏輯運(yùn)算,。
- 按位取反 ~ :如果該位為0則轉(zhuǎn)為1,,如果該位為1則轉(zhuǎn)為0
- 按位異或:如果兩個(gè)數(shù)字的二進(jìn)制位相同,則結(jié)果為0,,相異則結(jié)果為1.
五.移位運(yùn)算符
移位運(yùn)算符有三個(gè):<< , >> , >>> (都是按二進(jìn)制位來(lái)運(yùn)算)
- 左移<<: 最左側(cè)位不要了,最右側(cè)補(bǔ)零
int a = 0x10; //0x表示16進(jìn)制
System.out.print("%x\n",a<<1); //運(yùn)行結(jié)果20(是按16進(jìn)制打印的)
- 右移>>: 最右側(cè)位不要了,,最左側(cè)補(bǔ)符號(hào)位(正數(shù)補(bǔ)0,,負(fù)數(shù)補(bǔ)1)
- 無(wú)符號(hào)右移>>>: 最右側(cè)位不要了,最左側(cè)補(bǔ)0.
注意: 1.左移1位相當(dāng)于原數(shù)字2,,左移N位,,相當(dāng)于原數(shù)字2的N次方 2.右移1位相當(dāng)于原數(shù)字/2,左移N位,,相當(dāng)于原數(shù)字/2的N次方 3.計(jì)算機(jī)移位效率高于計(jì)算乘除 4.移動(dòng)負(fù)數(shù)位或者移位位數(shù)過(guò)大都沒(méi)有意義
六.條件運(yùn)算符
條件運(yùn)算符只有一個(gè): 表達(dá)式1 ,? 表達(dá)式2 :表達(dá)式3
也是Java中唯一的一個(gè)三目運(yùn)算符,是條件判斷語(yǔ)句的簡(jiǎn)化寫(xiě)法
//求兩個(gè)數(shù)的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;
七.運(yùn)算符的優(yōu)先級(jí)
運(yùn)算符之間是有優(yōu)先級(jí)的,,具體規(guī)則我們不必記憶,,在可能存在的歧義的代碼中加上括號(hào)即可。
|