運算符的優(yōu)先級(從高到低)(運算符的優(yōu)先級從高到低的順序是)
運算符的優(yōu)先級(從高到低)(運算符的優(yōu)先級從高到低的順序是)
如果在程序中,要改變運算順序,可以使用()。
一、算術運算符
(加);-(減);*(乘);/(除);%(模運算:相當于取余運算);
如果運算符兩邊的數(shù)據(jù)類型一致,結果的類型也和它們一樣(整數(shù)運算結果都會是int型的)
如果運算符兩邊的數(shù)據(jù)類型不一致,結果的類型和容量比較大的類型一致;
自增和自減都屬于一元運算符(就是只有一個數(shù)據(jù)參與運算);
(自增運算符):
自增運算符,根據(jù)相對于運算的數(shù)據(jù)的位置,又分為左自增和右自增;
int a = 10;
a:左自增:就算變量在自身的基礎上執(zhí)行加一運算,然后將運算的結果參與其他運算
a :右自增:會先在內(nèi)存中創(chuàng)建一個臨時空間,然后將變量原來的值放在臨時空間中,然后對變量執(zhí)行運算加一運算,然后拿臨時空間中的值(就算加一運算之前的值)參與其他運算
– -(自減運算符):
自減運算符的規(guī)律和自增運算符一樣,唯一不同的是,執(zhí)行的是減一運算;
(字符串連接符):當 左右兩邊有任意一邊是一個字符串時,運算結果就是將兩邊的值拼接成一個新的字符串;
二、賦值運算符
賦值運算符左邊只能是一個變量;
=:表示將符號右邊的值賦值給左邊的變量;
=:-=;*=;/=;%=:復合賦值運算符;復合賦值運算符會自動對結果進行強制轉換;
=:a = b 相當于 a = a b;
三、比較運算符
是對兩個數(shù)據(jù)進行比較運算,運算結果一定是布爾型數(shù)據(jù);
>;(大于)
>=;(大于或等于)
<;(小于)
<=;(小于或等于)
==:(恒等于)
!=;(不等于)
所有基本類型數(shù)據(jù)都可以使用 == 進行相等性驗證;
對于區(qū)間判斷不能連續(xù)的寫在一起;
3<a<6 錯誤的
四、邏輯運算符
參與邏輯運算的都是布爾型數(shù)據(jù);
邏輯運算的結果也都是布爾型數(shù)據(jù);
&:與,相當于并且;只有運算符兩邊都為true,結果才是true;否則,任意一邊是false,運算結果就是false;
&&:短路與,運算結果和&是一樣的;
|:或,相當于或者:只要兩邊有一遍是true,結果就是true;只有兩邊都是false,結果才是false;
||:短路或
^:異或:只有兩邊不相同,結果才是true;否則為false;
上面幾個都是雙元運算符;
!:非
一元運算符;
邏輯運算表:!true = false; !false = true;
&和&&的異同:
相同點:運算的結果都一樣;
不同點:&運算,不論左邊是什么,都會運算右邊;
&&運算,如果左邊是false,就不會去運算右邊;如果左邊是true,再運算右邊;
|和||的異同:
相同點:運算結果都相同;
不同點:|運算,不論左邊是什么,都運算右邊;
||如果左邊是true,就不會運算右邊;如果左邊是false,在運算右邊;
問題:什么時候使用 & 和 | ?
如果右邊必須參與運算,就因該使用&或|;
五、三元運算符
元就是表示參與運算的數(shù)據(jù);
格式:
變量 = 布爾表達式 ? 值一 : 值二;
六、位運算符
(<<)(>>)(>>> )
移位操作符操作的運算對象也是二進制的“位”,但是它們只可以被用來處理整數(shù)類型(基本
類型的一種)。左移位操作符(<<)能將操作符左邊的運算對象向左移動操作符右側指定的
位數(shù)(在低位補 0)。“有符號”右移位操作符(>>)則將操作符左邊的運算對象向右移動操
作符右側指定的位數(shù)?!坝蟹枴庇乙莆徊僮鞣褂昧恕胺枖U展”:若符號為正,則在高位插
入0;若符號為負,則在高位插入1。Java中增加了一種“無符號”右移位操作符(>>>),它
使用了“零擴展”:無論正負,都在高位插入0。這一操作符是C或C 沒有的。
& 按位與(AND):對應的二進制位進行與操作,兩個都為1才為1,其他情況均為0
| 按位或(OR):對應的二進制位進行或操作,兩個都為0才為0,其他情況均為1
^ 按位異或(XOR):當對應二進制位值相同,該位為0 否則為1
~ 按位非(NOT):對每個二進制位的內(nèi)容求反,即1變成0,0變成1
位操作符可與等號(=)聯(lián)合使用,以便合并運算操作和賦值操作:&=,|=和^=都是合法
的(由于~是一元操作符,所以不可與=聯(lián)合使用)。