java學(xué)習(xí)系列(四)Java基本語法02

java學(xué)習(xí)系列(四)Java基本語法02

原創(chuàng)2022-02-10 09:50·白眼黑刺猬

1.1. 運(yùn)算符

1.1.1. 賦值運(yùn)算符

符號(hào):= , +=, -=, *=, /=, %=

例子1:加號(hào)和賦值符號(hào)是可以合在一起使用的。

例子2:比較s += 4;和s = s + 4;的不同。

在執(zhí)行s+=4;語句時(shí),編譯器在編譯的時(shí)候,默認(rèn)進(jìn)行了強(qiáng)制類型轉(zhuǎn)換,也就是將int類型的數(shù)據(jù)轉(zhuǎn)換成byte類型的數(shù)據(jù)。

在執(zhí)行s = s + 4;語句時(shí),編譯器在編譯的時(shí)候,默認(rèn)并沒有強(qiáng)制類型轉(zhuǎn)換。所以,s是short類型,4是int類型,s會(huì)自動(dòng)提升為int類型,相加的和也是int類型,賦值給short類型的變量肯定會(huì)損失精度。這時(shí)候就需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換:s = (short)(s + 4);。

1.1.2. 比較運(yùn)算符

注意:

1、比較運(yùn)算符的結(jié)果都是boolean型,也就是要么是true,要么是false。

2、比較運(yùn)算符“==”不能誤寫成“=” 。

例子:

1.1.3. 邏輯運(yùn)算符

"&"符號(hào)的運(yùn)算特點(diǎn):

true & true = true;

true & false = false;

false & true = false;

false & false = false;

"&"符號(hào)運(yùn)算規(guī)律:

運(yùn)算的兩邊只要有一個(gè)是false,結(jié)果肯定是false。

只有兩邊都為true,結(jié)果才是true。

例子1:

"|"符號(hào)的運(yùn)算特點(diǎn):

true | true = true;

true | false = true;

false | true = true;

false | false = false;

"|"符號(hào)運(yùn)算規(guī)律:

運(yùn)算的兩邊只要有一個(gè)是true,結(jié)果肯定是true。

只有兩邊都為false,結(jié)果是false。

例子2:

"^"符號(hào)的運(yùn)算特點(diǎn):

true ^ true = false;

true ^ false = true;

false ^ true = true;

false ^ false = false;

"^"符號(hào)運(yùn)算規(guī)律:

^符號(hào)的兩邊結(jié)果如果相同,結(jié)果是false。

兩邊的結(jié)果不同,結(jié)果是true。

例子3:

"!"符號(hào)運(yùn)算規(guī)律:

true = false

!false = true

!!true = true;

例子4:

注意:

&&:和&運(yùn)算的結(jié)果是一樣的,但是運(yùn)算過程有點(diǎn)小區(qū)別。

&:無論左邊的運(yùn)算結(jié)果是什么,右邊都參與運(yùn)算。

&&:當(dāng)左邊為false時(shí),右邊不參加運(yùn)算,這樣可以提升效率

||:和|運(yùn)算的結(jié)果是一樣的,但是運(yùn)算過程有點(diǎn)小區(qū)別。

|:無論左邊的運(yùn)算結(jié)果是什么,右邊都參與運(yùn)算。

||:當(dāng)左邊為true時(shí),右邊不參加運(yùn)算,這樣可以提升效率。

使用&&和||比使用&和|更高效一些。

注意:

邏輯運(yùn)算符用于連接布爾型表達(dá)式,在Java中不可以寫成33 & x<6 。

1.1.4. 位運(yùn)算符

位運(yùn)算是直接對(duì)二進(jìn)制位進(jìn)行運(yùn)算。

與運(yùn)算例子:

6 & 3 = 2

110

& 011

-------

010

技巧:

用“與運(yùn)算”可以很方便提取某一二進(jìn)制數(shù)的其中幾位數(shù)。

例如,取17476二進(jìn)制數(shù)的后四位:

0100010001000100

& 0000000000001111

------------------------

0000000000000100

或運(yùn)算例子:

6 | 3 = 7

110

| 011

--------

111

異或運(yùn)算例子:

6 ^ 3 = 5

110

^ 011

-------

101

注意:

一個(gè)數(shù)異或同一個(gè)數(shù)兩次,結(jié)果還是這個(gè)數(shù)。

例如:

6 ^ 3 ^ 3 = 6

6 ^ 3 = 5

110

^ 011

-------

101

^ 011

-------

110

技巧:

利用異或運(yùn)算可以實(shí)現(xiàn)對(duì)數(shù)據(jù)簡(jiǎn)單地進(jìn)行加密,例如對(duì)一幅圖片的所有數(shù)據(jù)異或3進(jìn)行加密,那么這幅圖片就無法查看了。解密只需要再對(duì)圖片的數(shù)據(jù)執(zhí)行異或3操作即可。

取反運(yùn)算例子:

左移運(yùn)算例子:

3 << 2 = 12 相當(dāng)于 3 * 2(2) = 12

00000000000000000000000000000011

00000000000000000000000000001100

3 << 3 = 24 相當(dāng)于 3 * 2(3) = 24

00000000000000000000000000000011

00000000000000000000000000011000

總結(jié):

左移幾位其實(shí)就是該數(shù)據(jù)乘以2的幾次方。

<<:可以完成2的次冪運(yùn)算。

右移運(yùn)算例子:

6 >> 1 = 3 相當(dāng)于 6/2(1)=3

00000000000000000000000000000110

00000000000000000000000000000011

6 >> 2 = 1 相當(dāng)于 6/2(2) = 1

00000000000000000000000000000110

00000000000000000000000000000001

總結(jié):

右移幾位其實(shí)就是該數(shù)據(jù)除以2的幾次冪。

以上例子中括號(hào)表示次冪的意思。

注意:

>>:對(duì)于高位出現(xiàn)的空位,原來高位是什么,就用什么補(bǔ)這個(gè)空位。

>>>:無符號(hào)右移,數(shù)據(jù)進(jìn)行右移時(shí),高位出現(xiàn)的空位,無論原高位是什么,空位都用0補(bǔ)。

練習(xí):

1.最有效率的方式算出2乘以8等于幾?

答案:

2.對(duì)兩個(gè)整數(shù)變量的值進(jìn)行互換(可以使用第三方變量)。

答案:

3.對(duì)兩個(gè)整數(shù)變量的值進(jìn)行互換(不可以使用第三方變量)。

答案1:

答案2:

1.1.5. 三元運(yùn)算符

格式:

(條件表達(dá)式) ? 表達(dá)式1 : 表達(dá)式2;

如果條件為true,運(yùn)算后的結(jié)果是表達(dá)式1;

如果條件為false,運(yùn)算后的結(jié)果是表達(dá)式2。

示例1:

示例2:

獲取兩個(gè)整數(shù)中的較大的整數(shù)。

示例3:

獲取三個(gè)整數(shù)中的較大的整數(shù)。

注意:

表達(dá)式:就是具有一定語法規(guī)則的語句。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容