一篇文章帶你入門java運(yùn)算符
算術(shù)運(yùn)算符
基本四則運(yùn)算符
+ - * / %
- 對于/:int/int結(jié)果還是int,需要使用double。此外,0不能做除數(shù)。
- 對于%:表示取余,不僅可以對int取余,也可以對double取余。
例如:
System.out.println(11.5 % 2);
結(jié)果為:
增量賦值運(yùn)算符
+= -= *= /= %=
這些運(yùn)算符有一個特點(diǎn):自動進(jìn)行類型的轉(zhuǎn)換。
例如:
short a = 1; a += 2; System.out.println(a);
這段代碼運(yùn)行之后不會報錯。雖然short是短整型,進(jìn)行加法運(yùn)算時需要整型提升。但+=已經(jīng)自動將其提升。
自增/自減運(yùn)算符
++ --
- 前置++/–:先使用,再++/–
- 后置++/–:先++/–,后使用
例如:
int a = 1; int b = a++; int c = ++a; System.out.println(b); System.out.println(c);
結(jié)果為:
關(guān)系運(yùn)算符
== != < > <= >=
- 關(guān)系運(yùn)算符的表達(dá)式返回值都是 boolean 類型。
例如:
int a = 10; int b = 20; System.out.println(a > b);
邏輯運(yùn)算符
&& || !
邏輯運(yùn)算符的操作數(shù)(操作數(shù)往往是關(guān)系運(yùn)算符的結(jié)果)和返回值都是 boolean類型。
&&
表達(dá)式1 && 表達(dá)式2
- 只有兩個表達(dá)式都為真,結(jié)果才為真
- 如果表達(dá)式1為假,那么就不會執(zhí)行表達(dá)式2這
- 兩個表達(dá)式只能是布爾表達(dá)式
例如:
int a = 10; int b = 20; boolean c = (a > b) && (++a > 0); System.out.println(a);
此時,a的值仍為10。
||
表達(dá)式1 || 表達(dá)式2
- 只有兩個表達(dá)式都是假,結(jié)果才為假
- 如果表達(dá)式1為真,那么就不會執(zhí)行表達(dá)式2
- 這兩個表達(dá)式只能是布爾表達(dá)式
例如:
int a = 10; int b = 20; boolean c = (a < b) || (++a > 0); System.out.println(a);
此時,a的值為10。
!
!表達(dá)式
表達(dá)式只能為布爾類型
位運(yùn)算符
& | ~ ^
位操作表示按二進(jìn)制位運(yùn)算。
&(按位與)
如果兩個對應(yīng)二進(jìn)制位都是 1, 則結(jié)果為 1, 否則結(jié)果為 0
例如:
int a = 10; int b = 20; System.out.println(a & b);
結(jié)果為:
|(按位或)
如果兩個二進(jìn)制位都是 0, 則結(jié)果為 0, 否則結(jié)果為 1。
例如:
int a = 10; int b = 20; System.out.println(a | b);
結(jié)果為:
~(按位取反)
如果二進(jìn)制位為0,則轉(zhuǎn)為1;如果該位為1,則轉(zhuǎn)為0。
例如:
^(按位異或)
如果兩個數(shù)字的二進(jìn)制位相同, 則結(jié)果為0, 相異則結(jié)果為1。
例如:
int a = 10; int b = 13; System.out.println(a ^ b);
結(jié)果為:
移位運(yùn)算符
<< >> >>>
<<(左移)
<<:左邊丟棄,右邊補(bǔ)0
例如:
int a = 10; int b = a << 1; System.out.println(b);
結(jié)果為:
>>(右移)
>>:右邊丟棄,左邊補(bǔ)符號位(正數(shù)補(bǔ)0,負(fù)數(shù)補(bǔ)1)
例如:
int a = 10; int b = a >> 1; System.out.println(b);
結(jié)果為:
>>>(無符號右移)
>>>:右邊丟棄,左邊補(bǔ)0
方法同上。
注意:
左移 1 位, 相當(dāng)于原數(shù)字 * 2. 左移 N 位, 相當(dāng)于原數(shù)字 * 2 的N次方.
右移 1 位, 相當(dāng)于原數(shù)字 / 2. 右移 N 位, 相當(dāng)于原數(shù)字 / 2 的N次方.
由于計算機(jī)計算移位效率高于計算乘除, 當(dāng)某個代碼正好乘除 2 的N次方的時候可以用移位運(yùn)算代替.
移動負(fù)數(shù)位或者移位位數(shù)過大都沒有意義
條件運(yùn)算符
表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3
當(dāng)表達(dá)式1為true時,整個表達(dá)式的結(jié)果為表達(dá)式2的結(jié)果;當(dāng)表達(dá)式1為false時,整個表達(dá)式的結(jié)果為表達(dá)式3的結(jié)果。
例如:
int a = 10; int b = 20; int c = a > b ? a : b; System.out.println(c);
結(jié)果為:
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
IDEA配置tomcat的方法、IDEA配置tomcat運(yùn)行web項(xiàng)目詳解
這篇文章主要介紹了IDEA配置tomcat的方法、IDEA配置tomcat運(yùn)行web項(xiàng)目詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07JAVA LinkedList和ArrayList的使用及性能分析
JAVA LinkedList和ArrayList的使用及性能分析,這篇文章也是以JAVA List的總結(jié)。2013-11-11SpringBoot+Thymeleaf+ECharts實(shí)現(xiàn)大數(shù)據(jù)可視化(基礎(chǔ)篇)
本文主要介紹了SpringBoot+Thymeleaf+ECharts實(shí)現(xiàn)大數(shù)據(jù)可視化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>2022-06-06Swagger-boostrap-ui如何配置用戶名密碼訪問
這篇文章主要介紹了Swagger-boostrap-ui如何配置用戶名密碼訪問,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05Springboot配置Swagger2登錄密碼的實(shí)現(xiàn)
本文主要介紹了Springboot配置Swagger2登錄密碼的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03Java中的FutureTask實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了Java中的FutureTask手寫代碼實(shí)例,FutureTask是Future的實(shí)現(xiàn),用來異步任務(wù)的獲取結(jié)果,可以啟動和取消異步任務(wù),查詢異步任務(wù)是否計算結(jié)束以及獲取最終的異步任務(wù)的結(jié)果,需要的朋友可以參考下2023-12-12