🐱?🏍系列文章目錄
哈嘍大家好,我是Aaron,這篇文章將詳細介紹在JavaSE中可能用到的運算子,本文將收錄于JavaSE專欄中,該專欄將記錄JavaSE中的所有語法,有興趣可以收藏本專欄學習哦~
目前本專欄收集文章有:
- 😑Java基礎語法 - Java資料型別
- 🎨 【初識Java】開發環境安裝 - Java簡介以及環境搭建

下面正文開始,🏆🏆
運算子
- 🐱?🏍系列文章目錄
- 🥛文章前言
- 🦝算數運算子
- 🤢基本算數運算子
- 🍚增量算數運算子
- 🔨自增/自減運算子
- 💕邏輯運算子
- 🥪基本邏輯運算子
- 🤳短路運算
- 🚆關系操作運算子
- 🌳位運算子
- 🚲按位運算運算子
- 🌹移位運算運算子
- 🐱?🚀條件運算子(三目運算子)
- 🍦PS
- 🍎注釋
- 🍃Java關鍵字
- 😁總結
🥛文章前言
學習任何一門語言,都少不了運算,而運算就需要運算子,
按照博主的理解,在Java中,可以將運算子分為以下幾類:
- 算數運算子
- 邏輯運算子
- 位運算子
- 條件運算子
下面本文將圍繞這幾種運算子展開介紹,
🦝算數運算子
算數運算子中分為不同的幾種算數運算子:
- 基本算數運算子
- 增量算數運算子(復合運算子)
- 自增/自減運算子
下面將逐一介紹~
🤢基本算數運算子
和C語言類似,基本算數運算子分為+,-,*,/,%,
接下來一一介紹:
加,減,乘比較簡單,沒有什么需要注意的點,所以簡單用幾個代碼示例演示:
'+'運算子
代碼示例:
public class Operator {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a+b);
}
}
運行結果:

'-'運算子
代碼示例:
public class Operator {
public static void main(String[] args) {
int a = 10;
int b = 5;
System.out.println(a - b);
}
}
運行結果:

'*'運算子
代碼示例:
public class Operator {
public static void main(String[] args) {
int a = 10;
int b = 5;
System.out.println(a*b);
}
}
運行結果:

以上就是+,-,*法的基本用法和示例,接下來詳細介紹除法和取余運算子,
'/'運算子
在Java中,使用’/'運算子的時候要注意以下幾點:
- 除數不能為0,
這在我們的沒有印象當中應該是理所當然的,但在C語言中,除數作0是不會報錯的,只會給出warning(警告),但在Java中會直接拋出例外,在編譯階段就直接報錯,
例如:
public class Operator {
public static void main(String[] args) {
int a = 10;
int b = 0;
System.out.println(a/b);
}
}
拋出例外:

- 整型 / 整型的結果只能是整型,
也就意味著,就算我們用浮點型的變數接收整型 / 整型的結果,但運算的結果依然會是整型,
public class Operator {
public static void main(String[] args) {
int a = 10;
int b = 3;
double c = a / b;
System.out.println(c);
}
}
運行結果:

'%'運算子
取余運算子(%),也被稱為取模運算子,但和C語言中的使用不同,在C語言中,取模運算只能是整型之間的運算,但在Java中引入了浮點數的取模運算以及負數的取模運算,
下面介紹浮點數的取模運算和負數的取模運算,
- 浮點數取模運算,
浮點數的取模運算可以是:
- 浮點數 % 浮點數,
- 整數 % 浮點數
- 浮點數 % 整數
下面為代碼示例:
public class Operator {
public static void main(String[] args) {
double a = 12.5;
double b = 3.5;
System.out.println(a%b);
int x = 10;
double y = 3.5;
System.out.println(x%y);
double m = 10.5;
int n = 4;
System.out.println(m%n);
}
}
運行結果:

- 負數取模運算
在Java中,甚至可以對負數進行取模運算~
代碼示例:
public class Operator {
public static void main(String[] args) {
int a = 10;
int b = -3;
System.out.println(a%b);
}
}
運行結果:

這里給大家展示以下負數取模的運算程序~

小學數學嗷~~
🍚增量算數運算子
增量算數運算子,又稱復合運算子,
+=,-=,*=,/=,%=,>>=等等
其實增量運算子非常好理解:
比如:
a += 1;
完全等價于
a = a + 1;
其他的類似,
不過有一點需要注意~~
如果變數a是整型,讓a加上一個浮點數再賦給a是錯誤的運算,具體再本專欄資料型別一文中詳細說明了~
Java基礎語法 - Java資料型別
例如:
public class Operator {
public static void main(String[] args) {
int a = 10;
a = a + 2.5;
System.out.println(a);
}
}
例外拋出:

這樣的運算屬于將高精度數字存入低精度變數中,將會拋出例外,但是如果使用增量運算子就不會拋出例外~
如下:
public class Operator {
public static void main(String[] args) {
int a = 10;
a += 2.5;
System.out.println(a);
}
}
運行結果:

當然運算結果不可能是12.5,因為變數a是整型變數,這里可以理解為進行了自動型別轉換進行運算~
🔨自增/自減運算子
自增,自減運算子及"++,–"運算子,
自增自減運算子又分為前置++,后置++和前置–,后置–
下面介紹不同位置的不同用法:
前置++/–:先++/–,后使用
后置++/–:先使用,后++/–
單獨使用:前置和后置將沒有區別
下面使用代碼進行解釋:
public class Operator {
public static void main(String[] args) {
int a = 10;
int b = 0;
int c = 0;
b = ++a;
c = a++;
System.out.println(b);
System.out.println(c);
System.out.println(a);
}
}
運行結果:

如以上結果:
b = ++a;
a先自增1后再賦值給b,所以b等于11,
而
c = a++;
先將a現在的值賦給c,即11賦給c,然后再將a自增1變成12,
所以最后的結果:b和c都是11,a是12,
💕邏輯運算子
按照博主的理解,可以將所以運算結果回傳值為布爾型別的運算子叫做邏輯運算子,
其實按照細分應該可以分為兩塊:
- 基本邏輯運算子
- 關系操作運算子
下面對這兩種運算子進行介紹~
🥪基本邏輯運算子
基本邏輯運算子有三個:
- 與運算(&&)
- 或運算(||)
- 非運算(!)
他們的基本邏輯都很簡單~
- 與運算:
所有的運算元回傳值均為真,則運算結果為真,回傳true
如果有一個運算元回傳值為假,則運算結果為假,回傳false
即全真則真,一假則假
- 或運算:
有一個運算元回傳值為真,則整個運算式結果為真,回傳true
所有運算元回傳值為假,則整個運算式結果為假,回傳false
即一真則真,全假才假
- 非運算
將運算元的回傳值顛倒,如果運算元的回傳值為true,則運算式回傳值為false,如果運算元回傳值為false,則運算式回傳值為true,
即真即是假,假即是真
下面用代碼的形式介紹其簡單用法:
public class Operator {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println(a && b);
System.out.println(a || b);
System.out.println(!a);
System.out.println(!b);
}
}
運行結果:

以上就是基本邏輯運算子的簡單用法,但基本邏輯運算子中的邏輯與運算和邏輯或運算子合短路運算規則!
🤳短路運算
所謂短路運算就是:
- 對于邏輯與運算(&&):如果左側運算式結果為false,則不會進行右側運算式的運算,
- 對于邏輯或運算(||):如果左側運算式的結果為true,則不會進行對右側運算式的運算,
舉個簡單的例子:
我們在上文中提到過,在進行除法運算時,0不能被作為除數,否則在編譯期間就會拋出例外,
但用以下短路運算則不會拋出例外:
public class Operator {
public static void main(String[] args) {
System.out.println(10 > 20 && 0 == 10 / 0);
System.out.println(10 < 20 || 0 == 10 / 0);
}
}
運行結果:

可以看到,該程式正常的運行了,也就是說,發生了短路運算左側運算式運行之后就不再運行右側運算式了
🚆關系操作運算子
關系操作運算子,顧名思義,就是判斷運算元之間的關系的運算子,
關系操作運算子有:
==,!=,>=,<=,<,>
注意: 關系操作運算子的回傳型別都是布爾型別(boolean)
代碼示例:
public class Operator {
public static void main(String[] args) {
int a = 10;
int b = 20;
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);
}
}
運行結果:

🌳位運算子
博主把所有的關于二進制位的運算子全部歸于位運算子,
其中包括:
- 按位運算運算子
- 移位運算運算子
🚲按位運算運算子
對二進制位進行操作一般是較為面向底層的語言常用的運算子,比如C/C++這種與作業系統互動較多的語言,Java是偏注重應用的語言,所以我們這里了解即可,
Java中的按位運算運算子有:
按位與(&),按位或(|),按位異或(^)
下面一一介紹:
- 按位與(&)運算子
按位與(&)即對二進制序列進行按二進制位的與操作,如:
10010101001010011010010110101010
00010110101011101111010110001010 -- &
00010100001010001010010110001010
同為1的與運算結果為1,有一個為0則結果為0,
- 按位或(|)運算子
按位或(|)即對二進制序列進行按二進制位的或操作,如:
01000010011101110100101000111010
10110011010010111100001010000100 -- |
11110011011111111100101010111110
同為0時運算結果為0,有一個1則結果為1,
- 按位異或(^)運算子
按位異或在博主來看其實就是找不同,如果不同則運算結果為1,相同則為0,

如:
10010110110001011010010110100111
00101011010010011010100111011101 - ^
01000010011100111111001110000101
就像是找不同一般,找到不同的,回傳1,找到相同的,回傳0,
🌹移位運算運算子
在Java中移位運算子有三個:
- 左移運算子(<<)
- 右移運算子(>>)
- 無符號右移運算子(>>>)
移位運算子都是按照二進制數來進行移位,
左移運算子(<<):
最左邊位數不要了,其他位向左補齊,右邊空出的位補0;
右移運算子(>>):
最右邊位數不要了,其他位向右補齊,左邊空出的位補符號位,即正數補0,負數補1;
無符號右移運算子(>>>):
最右邊位數不要了,其他位向右補齊,左邊空出的位補0,即不管是正數還是負數都補0;
比如:
10000000000000000000000000000011 - -3原碼
11111111111111111111111111111100 - 反碼
11111111111111111111111111111101 - 補碼
11111111111111111111111111111101 - -3
11111111111111111111111111111010 - 左移1位 - 補碼
10000000000000000000000000000101
10000000000000000000000000000110 - 原碼 - -6
11111111111111111111111111111101 - -3
11111111111111111111111111111110 - 右移1位 - 補碼
10000000000000000000000000000001
10000000000000000000000000000010 - 原碼 - -2
11111111111111111111111111111101 - -3
01111111111111111111111111111110 - 無符號右移1位 - 正數
我們看代碼運行結果,10000011的值為-3
public class Operator {
public static void main(String[] args) {
int a = -3;
System.out.println(a << 1);
System.out.println(a >> 1);
System.out.println(a >>> 1);
}
}
運行結果:

其實移位運算子還有一個小結論:
因為按位移動的是二進制位,所以:
- 左移1位,相當于原來的數乘以2
- 右移1位,相當于原來的數除以2
有了以上結論,我們在進行代碼運算如果涉及2n的計算的時候可以采用移位運算子進行計算,
注意: 移動負數位或者移動位數過多將沒有意義~
🐱?🚀條件運算子(三目運算子)
在C語言中也有條件運算子,條件運算子也是C語言和Java中唯一的三木運算子,其基本使用規則如下:
運算式1 ? 運算式2 : 運算式3
即運算式1如果成立,則運算式2為整個運算式的結果,否則運算式3為運算式的結果,
在某些情況下條件運算子將例外好用,
比如:
public class Operator {
public static void main(String[] args) {
int a = 10;
int b = 20;
int max = a > b ? a : b;
System.out.println(max);
}
}
運行結果:

其中,
運算式1為(a>b);
運算式2為(a);
運算式3為(b);
以上就是Java中涉及的所有運算子,接下來附加兩個額外的小知識點,
🍦PS
在學習Java中還有一些不得不說的細節,比如接下來要講的注釋和關鍵字,
其中關鍵字將會在本專欄其他文章內容中分部講解,這里只簡單羅列,
🍎注釋
學習任何一門計算機語言都少不了注釋的學習,本文就簡單介紹以下在Java中注釋的用法和需要注意的東西~
首先我們知道,注釋是不作為編程的代碼部分的,他其實是為了使我們的代碼更具有可讀性而被添加上的描述資訊,不參與編譯,但是卻非常重要~
基本規則:
Java中的代碼注釋分為以下三種:
- 單行注釋://(注釋內容)
- 塊注釋(多行注釋):/ *(注釋內容) * /
- 檔案注釋:/**(注釋內容)*/
其中單行注釋使用最多,塊注釋基本不使用,而檔案注釋一般位于類和方法之間,用于描述,
代碼注釋需要注意格式規范,下面列出幾條規范注釋風格的要求:
- 內容準確:要求注釋內容應該和代碼相符,如果修改了代碼應該及時更新注釋,
- 篇幅精煉:注釋不適宜長篇大論,能讓自己和別人看懂即可,
- 使用中文:代碼的注釋是給自己和同事看的,不要炫耀自己的英文水平,應該最大可能的讓自己和別人看懂,
- 積極向上:不得出現辱罵國家,有損國家形象或者辱罵領導的陳述句詞匯,不要涉及政治敏感詞匯
🍃Java關鍵字
這里羅列Java關鍵字,但不會逐一講解,先熟悉即可,

注意: 自己定義的變數名不能與關鍵字沖突!
😁總結
以上就是本文的全部內容,主要介紹了Java學習中會用到的所有運算子以及一些需要注意的點,接著補充了注釋的內容以及Java關鍵字的圖表,文章有任何不懂或者有問題的地方歡迎大家評論區留言或者私聊博主~
如果喜歡本文記得不要吝嗇各位的三連哦~
👍點贊👍 + 👀關注👀 + ??收藏??
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/323428.html
標籤:java
