Java中的運(yùn)算符有哪些詳解
前言:
在Java編程中,運(yùn)算符是用于執(zhí)行各種計(jì)算和操作的重要元素。它們使得我們能夠?qū)?shù)據(jù)進(jìn)行處理、比較和組合,從而實(shí)現(xiàn)復(fù)雜的邏輯。
一、算術(shù)運(yùn)算符
算術(shù)運(yùn)算符用于執(zhí)行基本的數(shù)學(xué)運(yùn)算,如加法、減法、乘法和除法。以下是常見的算術(shù)運(yùn)算符:
- + :加法運(yùn)算符,用于將兩個(gè)操作數(shù)相加。
- - :減法運(yùn)算符,用于從第一個(gè)操作數(shù)中減去第二個(gè)操作數(shù)。
- * :乘法運(yùn)算符,用于將兩個(gè)操作數(shù)相乘。
- / :除法運(yùn)算符,用于將第一個(gè)操作數(shù)除以第二個(gè)操作數(shù)。需要注意的是,當(dāng)兩個(gè)整數(shù)相除時(shí), 結(jié)果會(huì)舍去小數(shù)部分。
- % :取模運(yùn)算符,返回除法運(yùn)算的余數(shù)。
public class Main { public static void main(String[] args) { int a=10; int b=3; System.out.println(a+b); //13 System.out.println(a-b); //7 System.out.println(a*b); //30 System.out.println(a/b); //3 System.out.println(a%b); //1 } }
注意事項(xiàng):
1.都是二元運(yùn)算符,使用時(shí)必須要有左右兩個(gè)操作數(shù)
2.int / int 結(jié)果還是int類型,而且會(huì)向下取整
3.做除法和取模時(shí),右操作數(shù)不能為0
4.% 不僅可以對(duì)整型取模,也可以對(duì)double類型取模,但是沒有意義,一般都是對(duì)整型取模的
5.兩側(cè)操作數(shù)類型不一致時(shí),向類型大的提升
二、關(guān)系運(yùn)算符
關(guān)系運(yùn)算符用于比較兩個(gè)操作數(shù)之間的關(guān)系,返回一個(gè)布爾值( true 或 false )。常見的關(guān)系運(yùn)算符有:
- == :檢查兩個(gè)操作數(shù)是否相等。
- != :檢查兩個(gè)操作數(shù)是否不相等。
- < :檢查第一個(gè)操作數(shù)是否小于第二個(gè)操作數(shù)。
- > :檢查第一個(gè)操作數(shù)是否大于第二個(gè)操作數(shù)。
- <= :檢查第一個(gè)操作數(shù)是否小于或等于第二個(gè)操作數(shù)。
- >= :檢查第一個(gè)操作數(shù)是否大于或等于第二個(gè)操作數(shù)。
public class Main { public static void main(String[] args) { int a=10; int b=30; System.out.println(a == b); System.out.println(a != b); System.out.println(a > b); System.out.println(a < b); System.out.println(a >= b); System.out.println(a <= b); } }
注意:當(dāng)需要多次判斷時(shí),不能連著寫,比如:3 < a < 5,Java程序與數(shù)學(xué)中是有區(qū)別的
三、邏輯運(yùn)算符
邏輯運(yùn)算符用于組合多個(gè)布爾表達(dá)式,以實(shí)現(xiàn)更復(fù)雜的邏輯判斷。常見的邏輯運(yùn)算符包括:
3.1 && :邏輯與運(yùn)算符
當(dāng)兩個(gè)操作數(shù)都為 true 時(shí),結(jié)果為 true ,否則為 false 。
public class Main { public static void main(String[] args) { int a=2; int b=3; System.out.println(a == 2 && b == 3); System.out.println(a == 2 && b == 1); System.out.println(a == 1 && b == 3); System.out.println(a == 1 && b == 1); } }
3.2 || :邏輯或運(yùn)算符
當(dāng)至少一個(gè)操作數(shù)為 true 時(shí),結(jié)果為 true ,只有當(dāng)兩個(gè)操作數(shù)都為 false 時(shí),結(jié)果才為 false 。
public class Main { public static void main(String[] args) { int a=2; int b=3; System.out.println(a == 2 || b == 3); System.out.println(a == 2 || b == 1); System.out.println(a == 1 || b == 3); System.out.println(a == 1 || b == 1); } }
3.3 ! :邏輯非運(yùn)算符
用于反轉(zhuǎn)操作數(shù)的布爾值。
public class Main { public static void main(String[] args) { int a=2; System.out.println(!(a == 2)); System.out.println(!(a == 3)); } }
四、位運(yùn)算符
位運(yùn)算符用于對(duì)操作數(shù)的二進(jìn)制位進(jìn)行操作。這些運(yùn)算符在處理底層數(shù)據(jù)和優(yōu)化性能時(shí)有時(shí)很有用。常見的位運(yùn)算符有:
4.1 & :按位與運(yùn)算符
如果兩個(gè)二進(jìn)制位都是 1, 則結(jié)果為 1, 否則結(jié)果為 0。
public class Main { public static void main(String[] args) { int a=5; int b=10; System.out.println(a&b); } } // 00000000 00000000 00000000 00000101 -----5 & // 00000000 00000000 00000000 00001010 -----10 //--------------------------------------------- // 00000000 00000000 00000000 00000000 -----0
4.2 | :按位或運(yùn)算符
如果兩個(gè)二進(jìn)制位都是 0, 則結(jié)果為 0, 否則結(jié)果為 1。
public class Main { public static void main(String[] args) { int a=5; int b=10; System.out.println(a|b); } } // 00000000 00000000 00000000 00000101 -----5 | // 00000000 00000000 00000000 00001010 -----10 //--------------------------------------------- // 00000000 00000000 00000000 00001111 -----15
4.3 ^ :按位異或運(yùn)算符
如果兩個(gè)數(shù)字的二進(jìn)制位相同, 則結(jié)果為 0, 相異則結(jié)果為 1。
public class Main { public static void main(String[] args) { int a=5; int b=10; System.out.println(a^b); } } // 00000000 00000000 00000000 00000101 -----5 ^ // 00000000 00000000 00000000 00001010 -----10 //--------------------------------------------- // 00000000 00000000 00000000 00001111 -----15
注意:如果兩個(gè)數(shù)相同,則異或的結(jié)果為0
4.4 ~ :按位取反運(yùn)算符
反轉(zhuǎn)操作數(shù)的每一位。
public class Main { public static void main(String[] args) { int a=0xb; System.out.printf("%x\n",~a); } } // 00000000 00000000 00000000 00001011 // ~ ------------------------------------------ // 1111 1111 1111 1111 1111 1111 1111 0100 // f f f f f f f 4
注意:
0x 前綴的數(shù)字為 十六進(jìn)制 數(shù)字. 十六進(jìn)制可以看成是二進(jìn)制的簡(jiǎn)化表示方式. 一個(gè)十六進(jìn)制數(shù)字對(duì)應(yīng) 4 個(gè)二進(jìn)制位.
0xb 表示 10 進(jìn)制的 11, 也就是二進(jìn)制的 1011
printf 能夠格式化輸出內(nèi)容, %x 表示按照十六進(jìn)制輸出.
\n 表示換行符
4.5 << :左移運(yùn)算符
將操作數(shù)的二進(jìn)制位向左移動(dòng)指定的位數(shù)。
public class Main { public static void main(String[] args) { int a=10; System.out.println(a<<1); } } // 00000000 00000000 00000000 00001010 // << // -------------------------------------- // 00000000 00000000 00000000 00010100 -----20
左移 1 位, 相當(dāng)于原數(shù)字 * 2. 左移 N 位, 相當(dāng)于原數(shù)字 * 2 的N次方
4.6 >> :右移運(yùn)算符
將操作數(shù)的二進(jìn)制位向右移動(dòng)指定的位數(shù),正數(shù)右移時(shí)高位補(bǔ) 0,負(fù)數(shù)右移時(shí)高位補(bǔ) 1(算術(shù)右移)。
public class Main { public static void main(String[] args) { int a=10; System.out.println(a<<1); } } // 00000000 00000000 00000000 00001010 // >> // -------------------------------------- // 00000000 00000000 00000000 00000101 -----5
右移 1 位, 相當(dāng)于原數(shù)字 / 2. 右移 N 位, 相當(dāng)于原數(shù)字 / 2 的N次方.
五、增量運(yùn)算符
例如 += 、 -= 、 *= 、 /= 等,該種類型運(yùn)算符操作完成后,會(huì)將操縱的結(jié)果賦值給左操作數(shù)。
int a=10; System.out.println(a+=2);//相當(dāng)于a=a+2 //12
int a=10; System.out.println(a-=2);//相當(dāng)于a=a-2 //8
int a=10; System.out.println(a*=2);//相當(dāng)于a=a*2 20
int a=10; System.out.println(a/=2);//相當(dāng)于a=a/2 5
int a=10; System.out.println(a%=2);//相當(dāng)于a=a%2 0
注意:只有變量才能使用該運(yùn)算符,常量不能使用。
六、自增/自減運(yùn)算符 ++ --
++是自增1,--是自減1
前置++先++再使用,后置++先使用后++,前置--先--再使用,后置--先使用后--
總結(jié):
正確理解和熟練運(yùn)用這些運(yùn)算符是編寫高效和準(zhǔn)確 Java 代碼的基礎(chǔ)。
到此這篇關(guān)于Java中的運(yùn)算符有哪些的文章就介紹到這了,更多相關(guān)Java中運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot集成nacos報(bào)錯(cuò):get data from Nacos
這篇文章給大家介紹了springboot集成nacos報(bào)錯(cuò):get data from Nacos error,dataId:null.yaml的原因及解決方法,如果又遇到相同問題的朋友可以參考閱讀本文2023-10-10Android中PreferenceActivity使用詳解
本文主要介紹了Android中PreferenceActivity使用詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09Java基礎(chǔ)學(xué)習(xí)之實(shí)參和形參
這篇文章主要介紹了Java基礎(chǔ)學(xué)習(xí)之實(shí)參形參,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有一定的幫助,需要的朋友可以參考下2021-05-05Eclipse 2020-06 漢化包安裝步驟詳解(附漢化包+安裝教程)
這篇文章主要介紹了Eclipse 2020-06 漢化包安裝步驟(附漢化包+安裝教程),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08