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