Java編程基礎(chǔ)元素-運(yùn)算符
1 前言
運(yùn)算符就是在用變量或常量進(jìn)行運(yùn)算時(shí),經(jīng)常需要用到的運(yùn)算符,Java 提供了豐富的運(yùn)算符,可分為4類:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和位運(yùn)算符。
2 算術(shù)運(yùn)算符
2.1 四則運(yùn)算
算術(shù)運(yùn)算符的用途類似一般數(shù)學(xué)運(yùn)算中的加(+)、減(-)、乘(×)和除(/)四則運(yùn)算,是經(jīng)常使用的數(shù)學(xué)運(yùn)算符。這些算術(shù)運(yùn)算符在Java語(yǔ)言中的用法及功能與它們?cè)趥鹘y(tǒng)的數(shù)學(xué)中的用法及功能相同。四則運(yùn)算符和數(shù)學(xué)上的功能一模一樣。而求余數(shù)運(yùn)算符“%”用于計(jì)算兩數(shù)相除后的余數(shù),這個(gè)運(yùn)算要求參與運(yùn)算的兩個(gè)操作數(shù)都必須是整數(shù)類型。
public static void main(String[] args) { ? ? int a = 13+5; ? ? int b = 19-2; ? ? int c = 3*5; ? ? int d = 20/2; ? ? System.out.println("a="+a); ? ? System.out.println("b="+b); ? ? System.out.println("c="+c); ? ? System.out.println("d="+d); }
輸出結(jié)果:
a=18
b=17
c=15
d=10
2.2 字符串運(yùn)算符
不過(guò),我們要注意的是加法運(yùn)算符,在Java
中,它除了可以執(zhí)行數(shù)值加的運(yùn)算,還具有“字符串串接”的功能。
public static void main(String[] args) { ? ? int x = 6; ? ? int y = 9; ? ? String z = "xy"; ? ? System.out.println(z + x + y); }
輸出結(jié)果:
xy69
2.3 一元運(yùn)算符
對(duì)于很多表達(dá)式而言,運(yùn)算符前后都會(huì)有操作數(shù)。但有一類操作符比較特別,它只需要一個(gè)操作數(shù)。這類運(yùn)算符稱為一元運(yùn)算符。常見(jiàn)的一元運(yùn)算符有:+(正號(hào))、 -(負(fù)號(hào))、++(自增)、(–)自減
一元減號(hào)可以得到數(shù)據(jù)的負(fù)值。一元加號(hào)的作用相反,不過(guò)它唯一能影響的就是把較小的數(shù)值類型自動(dòng)轉(zhuǎn)換為 int
類型。
public static void main(String[] args) { ? ? int x = +5; ? ? int y = -3; ? ? x++; ? ? y--; }
輸出結(jié)果:
x=6
y=-4
3 關(guān)系運(yùn)算符
關(guān)系運(yùn)算符會(huì)通過(guò)產(chǎn)生一個(gè)布爾(boolean
)結(jié)果來(lái)表示操作數(shù)之間的關(guān)系。如果關(guān)系為真,則結(jié)果為 true,如果關(guān)系為假,則結(jié)果為 false
。常見(jiàn)的關(guān)系運(yùn)算符有:==(等于)、!=(不等于)<(小于)、>(大于)、<=(小于等于)和>=(大于等于)
public static void main(String[] args) { ? ? int a = 10; ? ? int b = 11; ? ? boolean result = a == b; ? ? System.out.println(result); }
輸出結(jié)果:
false
4 邏輯運(yùn)算符
每個(gè)邏輯運(yùn)算符根據(jù)參數(shù)的邏輯關(guān)系生成布爾值 true 或 false。常見(jiàn)的邏輯運(yùn)算符有3個(gè),即與(&&)、或(||)、非(!)
public static void main(String[] args) { ? ? boolean a = true; ? ? int b = 0; ? ? boolean result = a || b++>0; ? ? System.out.println(result);?? ? }
輸出結(jié)果:
true
5 位運(yùn)算符
位運(yùn)算符允許我們操作一個(gè)整型數(shù)字中的單個(gè)二進(jìn)制位。位運(yùn)算符會(huì)對(duì)兩個(gè)整數(shù)對(duì)應(yīng)的位執(zhí)行布爾代數(shù),從而產(chǎn)生結(jié)果。位運(yùn)算符有&(按位與)、|(按位或)、^(按位異或)、<<(左移)、>>(右移)。
左移運(yùn)算符(<<)規(guī)則
按二進(jìn)制形式把所有的數(shù)字向左移動(dòng)對(duì)應(yīng)的位數(shù),高位移出(舍棄),低位的空位補(bǔ)零。
語(yǔ)法格式:需要移位的數(shù)字 << 移位的次數(shù)。例如: 3 << 2,則是將數(shù)字3左移2位
計(jì)算過(guò)程:首先把3轉(zhuǎn)換為二進(jìn)制數(shù)字0000 0000 0000 0000 0000 0000 0000 0011,然后把該數(shù)字高位(左側(cè))的兩個(gè)零移出,其他的數(shù)字都朝左平移2位,最后在低位(右側(cè))的兩個(gè)空位補(bǔ)零。則得到的最終結(jié)果是0000 0000 0000 0000 0000 0000 0000 1100,則轉(zhuǎn)換為十進(jìn)制是12。
右移運(yùn)算符(>>)規(guī)則:
按二進(jìn)制形式把所有的數(shù)字向右移動(dòng)對(duì)應(yīng)位移位數(shù),低位移出(舍棄),高位的空位補(bǔ)符號(hào)位,即正數(shù)補(bǔ)零,負(fù)數(shù)補(bǔ)1。
語(yǔ)法格式:需要移位的數(shù)字 >> 移位的次數(shù)。例如11 >> 2,則是將數(shù)字11右移2位
計(jì)算過(guò)程:
11的二進(jìn)制形式為:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后兩個(gè)數(shù)字移出,因?yàn)樵摂?shù)字是正數(shù),所以在高位補(bǔ)零。則得到的最終結(jié)果是0000 0000 0000 0000 0000 0000 0000 0010。轉(zhuǎn)換為十進(jìn)制是2。
6 碼農(nóng)洞見(jiàn)
6.1 運(yùn)算符思維導(dǎo)圖
6.2 運(yùn)算符優(yōu)先級(jí)
運(yùn)算符的優(yōu)先級(jí)決定了存在多個(gè)運(yùn)算符時(shí)一個(gè)表達(dá)式各部分的運(yùn)算順序。Java 對(duì)運(yùn)算順序作出了特別的規(guī)定。其中,最簡(jiǎn)單的規(guī)則就是乘法和除法在加法和減法之前完成。程序員經(jīng)常都會(huì)忘記其他優(yōu)先級(jí)規(guī)則,所以應(yīng)該用括號(hào)明確規(guī)定運(yùn)算順序。運(yùn)算符的優(yōu)先順序:
- 分隔符:
[] () ; ,
- 從右到左結(jié)合:
++ – + - ~ !
- 從左到右結(jié)合:
* / %
- 從左到右結(jié)合:
+ -
- 從左到右結(jié)合:
<< >> >>>
- 從左到右結(jié)合:
< > <= >=
- 從左到右結(jié)合:
== !=
- 從左到右結(jié)合:
&
- 從左到右結(jié)合:
^
- 從左到右結(jié)合:
|
- 從左到右結(jié)合:
&&
- 從左到右結(jié)合:
||
- 從右到左結(jié)合:
?:
- 從右到左結(jié)合:
= *= /= %= += -= <<= >>= >>>= &= ^= |=
同樣優(yōu)先級(jí)的運(yùn)算符是從左到右計(jì)算還是從右到左計(jì)算稱為運(yùn)算符的結(jié)合性。
到此這篇關(guān)于Java編程基礎(chǔ)元素-運(yùn)算符的文章就介紹到這了,更多相關(guān)Java元素-運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java異常詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
異常是Java語(yǔ)言中的一部分,它代表程序中由各種原因引起的“不正?!币蛩亍O旅嫱ㄟ^(guò)本文給大家介紹java異常的相關(guān)知識(shí),感興趣的朋友一起看看吧2017-06-06SimpleDateFormat線程安全問(wèn)題排查詳解
這篇文章主要為大家介紹了SimpleDateFormat線程安全問(wèn)題排查詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11spring學(xué)習(xí)之util:properties的使用
這篇文章主要介紹了spring學(xué)習(xí)之util:properties的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01IDEA插件開(kāi)發(fā)之環(huán)境搭建過(guò)程圖文詳解
這篇文章主要介紹了IDEA插件開(kāi)發(fā)之環(huán)境搭建過(guò)程,本文通過(guò)圖文并茂實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Spring Boot Actuator監(jiān)控的簡(jiǎn)單使用方法示例代碼詳解
這篇文章主要介紹了Spring Boot Actuator監(jiān)控的簡(jiǎn)單使用,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06