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