更新時(shí)間:2020-07-23 16:14:02 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2811次
學(xué)習(xí)計(jì)算機(jī)編程語(yǔ)言都會(huì)遇到運(yùn)算符這一知識(shí)點(diǎn),運(yùn)算符這個(gè)知識(shí)點(diǎn)是教怎么運(yùn)用編程語(yǔ)言進(jìn)行最基本的數(shù)據(jù)處理,下面就講一下在Java語(yǔ)言中運(yùn)算符是怎么回事。

1、算術(shù)運(yùn)算符:
基本上和C/C++語(yǔ)言中的一樣;
加(+):計(jì)算兩個(gè)數(shù)之和或者將較小的數(shù)據(jù)類型提升為int;
減(-):計(jì)算兩個(gè)數(shù)的差或者轉(zhuǎn)變數(shù)據(jù)的符號(hào);
編譯器會(huì)自動(dòng)識(shí)別是兩個(gè)數(shù)之間的計(jì)算還是其他。
比如:x=-a;x=a+b;
乘(*):計(jì)算兩個(gè)數(shù)的積;
除(/):計(jì)算兩個(gè)數(shù)之商。注意a/b,b不能為0,要不然編譯不過;整數(shù)的除法如果除不盡會(huì)直接把小數(shù)部分抹掉而不是四舍五入。
取余(%):還叫取模,取的是兩個(gè)數(shù)的余數(shù)。
自動(dòng)遞增/減(--、++):++a相當(dāng)于a=a+1;注意這兩個(gè)操作符分前綴(++a)和后綴(a++),前綴會(huì)先進(jìn)行運(yùn)算,再使用這個(gè)變量,后綴是先使用變量再進(jìn)行計(jì)算;
比如:int a=1;
println("a="+++a);//2;
println("a="+a++);//2
上面打印出來(lái)都是2,第一個(gè)因?yàn)槭乔熬Y,所以先執(zhí)行運(yùn)算后打印a,第二個(gè)是先打印a再執(zhí)行運(yùn)算;
這個(gè)經(jīng)常出現(xiàn)在面試題中,在實(shí)際項(xiàng)目中也經(jīng)常用到。
2、關(guān)系運(yùn)算符:
關(guān)系運(yùn)算生成的是一個(gè)boolean結(jié)果;
大于(>),小于(<),大于等于(>=),小于等于(<=),等于(==),不等于(!=)。
在基本數(shù)據(jù)類型之間使用關(guān)系運(yùn)算符很容易理解,就是比較兩個(gè)數(shù)的大小關(guān)系,但是對(duì)于等于和不等于可以用在其他的數(shù)據(jù)類型(對(duì)象)之間,這個(gè)時(shí)候比較的是對(duì)象的內(nèi)存地址是否一樣,這里先不過多講解,后面的文章在學(xué)習(xí)完類和對(duì)象之后會(huì)拿來(lái)和equals()方法放在一期講。
3、邏輯運(yùn)算符:
與(&&),或(||),非(?。┥傻慕Y(jié)果也是一個(gè)boolean值。
a&&b,a和b全為true時(shí)結(jié)果才是ture;
a||b,a或者b有一為true結(jié)果就是true;
這里a和b可能是兩個(gè)boolean變量,也可能是兩個(gè)結(jié)果為boolean的表達(dá)式。
注:說一下短路問題,這個(gè)在實(shí)際編程中也會(huì)遇到,短路是在進(jìn)行邏輯運(yùn)算時(shí),如果通過前面的判斷已經(jīng)能夠明確的知道整個(gè)表達(dá)式的值,就不會(huì)再進(jìn)行后面表達(dá)式的邏輯判斷。例如:表達(dá)式a||表達(dá)式b||表達(dá)式c在知道表達(dá)式a是true時(shí)就已經(jīng)能夠知道整個(gè)表達(dá)式的值為true,所以表達(dá)式2和3都不會(huì)再進(jìn)行判斷。
4、位運(yùn)算符:
用來(lái)操作整數(shù)基本數(shù)據(jù)類型的每一個(gè)位,也就是把整數(shù)按照二進(jìn)制進(jìn)行計(jì)算。
int a=50;
int b=30;
System.out.println(Integer.toBinaryString(a));//110010
System.out.println(Integer.toBinaryString(b));//011110
System.out.println(Integer.toBinaryString(a&b));//010010
System.out.println(Integer.toBinaryString(a|b));//111110
System.out.println(Integer.toBinaryString(a^b));//101100
System.out.println(Integer.toBinaryString(a<<2));//11001000
System.out.println(Integer.toBinaryString(a>>2));//1100
&按位與操作符,當(dāng)且僅當(dāng)兩個(gè)操作數(shù)都為1時(shí)結(jié)果才為1。
|按位或操作符,只要兩個(gè)操作數(shù)的某一位是1結(jié)果就為1。
^按位異或操作符,兩個(gè)操作數(shù)不相同時(shí)則結(jié)果為1。
?按位補(bǔ)運(yùn)算符翻轉(zhuǎn)操作數(shù)的每一位,0翻轉(zhuǎn)為1,1翻轉(zhuǎn)為0。
<<按位左移運(yùn)算符。左操作數(shù)按位左移右操作數(shù)指定的位數(shù),低位補(bǔ)0。左移幾位等于乘2的幾次冪。
>>按位右移運(yùn)算符。左操作數(shù)按位右移右操作數(shù)指定的位數(shù),高位補(bǔ)0或者1,取決于操作數(shù)正負(fù),正則補(bǔ)0,負(fù)則補(bǔ)1。右移幾位等于除2的幾次冪。
>>>按位右移補(bǔ)零操作符(無(wú)符號(hào)右移)。左操作數(shù)的值按右操作數(shù)指定的位數(shù)右移,移動(dòng)得到的空位以0填充。
5.三元運(yùn)算符:
三元操作符也叫條件操作符。表達(dá)式如下:
boolean-expression?value0:value1;
如果boolean-expression是true則就計(jì)算value0,并且作為整個(gè)表達(dá)式的值返回,如果為false則計(jì)算value1,并作為結(jié)果返回。
6.關(guān)于優(yōu)先級(jí):
網(wǎng)上流傳最多的是下面的口訣:
單目乘除為關(guān)系,邏輯三目后賦值。
單目:?jiǎn)文窟\(yùn)算符+–(負(fù)數(shù))++--等
乘除:算數(shù)單目運(yùn)算符*/%+-
為:位移單目運(yùn)算符<<>>
關(guān)系:關(guān)系單目運(yùn)算符><>=<===!=
邏輯:邏輯單目運(yùn)算符&&||&|^
三目:三目單目運(yùn)算符A>B?X:Y
后:無(wú)意義,僅僅為了湊字?jǐn)?shù)
賦值:賦值=

Java技術(shù)內(nèi)容
Java運(yùn)算符概述:http://www.soulsinkind.com/tutorial_java_se/79.html
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“零基礎(chǔ)學(xué)習(xí)Java語(yǔ)言運(yùn)算符”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)