Java運算符的那些事(最全知識點)
文章目錄
1. 算術運算符的基本用法
- 運算符:
- 用於對常量和變量進行操作的符號
- 表達式:
- 用運算符連接起來的, 符合Java語法的式子.
- 不同的運算符連接的表達式是不同類型的表達式
- 如:
a + b
: 算術表達式a = b
: 賦值表達式a > b
: 關係表達式a && b
: 邏輯表達式
- 如:
- 5種運算符:
- 算數運算符
+
: 加-
: 減*
: 乘/
: 除 (整數相除結果是整數, 有浮點數參與運算, 結果才爲浮點數) 除法: 4 / 3 商1 餘1%
: 取餘++
: 自增1--
: 自減1
- 賦值運算符
- 關係運算符
- 邏輯運算符
- 三元運算符
- 算數運算符
- 注意:
- 整數相除只能得到整數, 有小數參與運算才能得到小數
- 如:
10 / 3 = 3
,10.0 / 3 = 3.33333333335
- 如:
- 整數相除只能得到整數, 有小數參與運算才能得到小數
2.算術運算符取餘和除法的區別
- 取餘:
- 兩數相除後的餘數, 5 % 3 = 2
- 除法:
- 兩數相除後的商, 5 / 3 = 1
3.字符和字符串參與加法操作
-
字符參與加法運算:
-
其實是拿字符在計算機中存儲的數據值來參與運算的
- ‘A’ = 65
- ‘a’ = 97
- ‘0’ = 48
-
注意:
- char類型在算數運算時按照數值來計算
- 如果打印的是char類型, 則打印出的是數值所代表的字符, 而不是數值
- 如果打印的是char和數字計算的結果, 因爲運算會有隱式類型轉換, 所以最終打印的是數字
System.out.println('A'); // 打印字符A System.out.println('A' + 0); // 打印65. 因爲char與int計算, char類型提升爲int, 最終計算結果 是int類 型, 65 + 0 = 65. 相當於System.out.println(65);
-
-
字符串參加加法(拼接)
- 其實不做加法運算, 而是拼接字符串
System.out.println("hello" + 10);
: hello10System.out.println(10 + 20 + "hello");
: 30hello- 注意:
10 + 20 + "hello"
中, 10和20會先進行算術加法得到30, 才能和字符串"hello"拼接
- 注意:
System.out.println(10 + 10 + "");
: 20
- 其實不做加法運算, 而是拼接字符串
4.算術運算符++和–的用法
++
: 自增, 用於對變量加一--
: 自減, 用於對變量減一- 運算符放在變量前和變量後的區別:
- 單獨使用時(即只有
i++;
或++i;
), 沒有區別, 都是自增 - 參與其他操作時:
int a = i++
:- 先使用i本身的值作爲i++表達式的值
- 然後i再自增(i自增後不影響之前i++表達式的值)
- 最後將等號右邊的值賦值給左邊a
int a = ++i
:- i先自增
- 然後將自增後的值作爲++i表達式的值
- 最後將等號右邊的值賦值給左邊
--
同理
- 單獨使用時(即只有
5.賦值運算符的基本用法和擴展用法
- 基本賦值運算符:
=
: 將等號右邊的值賦給左邊的變量,int a = 10;
- 擴展賦值運算符:
+=
: 將運算符左邊和右邊的數據做加法, 然後將結果賦值給左邊.a += 10;
相當於a = (a的類型)(a + 10);
-=
: 將運算符左邊和右邊的數據做減法, 然後將結果賦值給左邊.a -= 10;
相當於a = (a的類型)(a - 10);
*=
: 將運算符左邊和右邊的數據做乘法, 然後將結果賦值給左邊.a *= 10;
相當於a = (a的類型)(a * 10);
/=
: 將運算符左邊和右邊的數據做除法, 然後將結果賦值給左邊.a /= 10;
相當於a = (a的類型)(a / 10);
%=
: 將運算符左邊和右邊的數據做取餘, 然後將結果賦值給左邊.a %= 10;
相當於a = (a的類型)(a % 10);
- 注意: 擴展賦值運算符隱含了強制類型轉換
a += 10; 相當於 a = (a的類型)(a + 10);
6.關係運算符的基本用法和注意事項
- 關係運算符
==
: 相等!=
: 不等>
: 大於>=
: 大於等於<
: 小於<=
: 小於等於
- 關係運算符的結果是:
- boolean類型的值
- 注意區分
==
和=
, 別寫錯
7.邏輯運算符
- 比較兩邊的條件
&
: 與, 並且. 兩邊同時成立則true, 只要有一邊不成立(false), 就爲false|
: 或, 或者. 兩邊只要有一邊成立則true, 兩邊都是false則false^
: 異或. 兩邊相同false, 兩邊不同true- 男:true, 女:false, 男女(或女男)纔是真愛, 所以是true, 男男或女女都是false
!
: 非, 取相反的結果, 只和一邊有關
8.邏輯運算符&&和&的區別
&
: 與. 兩邊同時爲true則爲true, 否則爲false|
: 或. 兩邊有任意一個true則爲true, 否則爲false&&
: 邏輯與(短路與). 只要左邊是false, 則不判斷右邊, 直接false||
: 邏輯或(短路或). 只要左邊是true, 則不判斷右邊, 直接true
9. 三元運算符的基本使用
- 三元運算符的格式:
(關係表達式)? 表達式1 : 表達式2;
- 三元運算符的執行流程:
- 先計算關係表達式的布爾值
- 如果是true, 則表達式1是結果; 如果是false, 則表達式2是結果