java 1%10_Java 操作符与运算符详解
一.賦值操作符
1 有哪些賦值操作符
2 需要注意的地方
1)
a+=b; ==> a = a+b;
a-=b; ==>a = a-b;
a =-b;//注意這里-不要寫在=的后面
2)
short s = 7;
s = s+3;//出錯,在作算術(shù)運(yùn)算的時候,會將小類型提升為大類型運(yùn)算
s += 3;//沒有任何問題
說明:
E1 op= E2; a += 3;
編譯器會將它編譯成=> E1 =(T)(E1 op E2);
s+=3 => s = (short)(s+3);
二.算術(shù)運(yùn)算符
注意的地方
int i = 8/3;// i得到2 ,不是2.333333333
int i = 8/0; //編譯沒問題,運(yùn)行出錯,整型相除,0不能作為除數(shù)
double d = 8.0/0; //沒問題,得到正無窮大
double d = 8/0;//整型相除,0不能作為除數(shù)
int i = 8%3; //余2,i就是2
請各個位數(shù)之和:
//求各個位數(shù)之和
int i = 9829;
//得到各位數(shù)
int geWei = i/1%10;
int shiWei = i/10%10;
int baiWei = i/100%10;//38
int qianWei = i/1000%10;
三.自加自減
自加 ++
自減 --
a++ => a=a+1;
++a => a=a+1;
a-- => a=a-1;
--a => a=a-1;
----------------
需要注意的地方
1)單獨(dú)出現(xiàn)時,a++和++a都是一樣的
2)參與一個完整表達(dá)式的時候,此時就區(qū)別
int a = 9;
int m = a++; //先用后加 m9 a10
int a = 9;
int n = ++a; //先加后用 n10 a10
四.關(guān)系操作符
1 包括
注意:比較運(yùn)算符都是返回boolean的值,主要用于條件語句和循環(huán)語句的判斷。
什么叫表達(dá)式:
操作符與操作數(shù)組成的式子,叫表達(dá)式。
a = 8;
a = 9>8
五.移位操作符
>>:右移,移出的高位補(bǔ)符號位
<<:>
>>> :無符號右移,高位補(bǔ)0
int i = 13
00000000 00000000 00000000 00001101
13>>1 右移一位,高位補(bǔ)符號位,結(jié)果得6
0 00000000 00000000 00000000 0000110
13<<1 左移一位,低位直接補(bǔ)0,結(jié)果得26
0000000 00000000 00000000 00001101 0
int i =-13
先求:-13的補(bǔ)碼
00000000 00000000 00000000 00001101 (絕對值的二進(jìn)制)
取反加1后
11111111 11111111 11111111 11110011(-13的補(bǔ)碼)
-13>>1 右移一位,高位補(bǔ)符號位.
1 11111111 11111111 11111111 1111001
減1取反后(符號位不變)
1 00000000 00000000 00000000 0000111
最終結(jié)果得:-7
如果:-13>>>1 無符號右移一位,高位補(bǔ)0.
0 11111111 11111111 11111111 1111001
---------------------
面試題:
以最快的速度算出8*2或者8/2的結(jié)果?
8<<1
8>>1
int r = 8*2 //用到很多塊內(nèi)存,所以慢。
六.按位操作符
&:按位與 : 見0為0,全1為1
|:按位或,見1為1,全0為0
^:按位異或,相同為0,相異為1
~:取反,原來為1變?yōu)?,原來為0變?yōu)?
使用的一些例子:
1 任何一個數(shù)異或同一個數(shù)2次得到自身,可以用做簡單加密器
七.邏輯運(yùn)算符
&&:短路與,見假為假,全真為真
||:短路或,見真為真,全假為假
& :非短路與,見假為假,全真為真
| :非短路或,見真為真,全假為假
! :非,取反
^ :異 或,相同為false,相異為true
----
短路和非短路
&&:短路,前面的條件如果為false,不管理 后面條件是true還是false,整體上都為false,所以沒必要去判斷后面的條件
面試題:
&跟&&區(qū)別:
1.&按位與運(yùn)算符,也叫非短路與
2.&&邏輯與運(yùn)算符,也叫短路與
3.&第一個表達(dá)式不成立的時候,繼續(xù)算所有的表達(dá)式,如(a&b),假如a為false,也還要執(zhí)行b
4.&&第一個表達(dá)式不成立的時候 ,剩下的表達(dá)式都不執(zhí)行了,如(a&&b),假如a為false,則不執(zhí)行b
八.字符串相加
+可以用來對數(shù)值相加,也可以對字符串相加,
+是java下惟一的重載的運(yùn)算符
String s1 = "hello";
String s2 = "world";
String s3 = s1+s2;
String s4 = "hello"+"world";
字符串可+任何一種數(shù)據(jù)類型,加號后面的數(shù)據(jù)類型會自動轉(zhuǎn)換成字符串
需要注意的地方:
String s = "a="+5+5;
System.out.println(s); //輸出a=55
s = "a="+(5+5);
System.out.println(s);//輸出a=10
九.三目運(yùn)算符
1 什么是三目運(yùn)算符
布爾表達(dá)式? 值1 : 值2;
2 用來干嗎?
對某些條件進(jìn)行判斷,然后取其中兩個值中的一個值返回
其實(shí)就是if判斷的一種簡寫方式
3 例子
int score = 60;
String s = score>=60? "及格":"不及格";
總結(jié)
以上是生活随笔為你收集整理的java 1%10_Java 操作符与运算符详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “服食求不死”上一句是什么
- 下一篇: Java的反射作用_浅析Java 反射机