Java 中包含多種運算符:算數運算符、關系運算符、邏輯運算符、位運算符。在 Math 類中,包含了各種各樣的數學函數。在編寫不同類別的程序時,可能需要的函數也不同。要生成一個隨機數,可以使用 Random 對象。
~
本篇主要記錄內容包括:運算符、數學工具類
- 上一篇內容:Java基礎:Java數據類型
- 下一篇內容:Java基礎:Java流程控制
- 更多知識學習:全網最全的 Java 技術棧內容梳理(持續更新中)
文章目錄
- 一、運算符
- 1、算數運算符
- 2、關系運算符
- 3、邏輯運算符
- 4、位運算符(與邏輯運算符不是同一個概念)
- 二、數學工具類
- 1、Math 數學類
- 2、Random 類
一、運算符
Java 中包含多種運算符:算數運算符、關系運算符、邏輯運算符、位運算符。
1、算數運算符
在 Java中,使用算術運算符 +
-
*
/
表示加、減、乘、除運算。整數的求余操作(有時稱為取模)用 %
表示。
程序員都知道加 1、減 1 是數值變量最常見的操作。在 Java 中,借鑒了 C 和 C++ 的做法,也提供了自增、自減運算符:n++
將變量 n 的當前值加 1,n--
則將 n 的值減1。
注意事項:①加法運算符在連接字符串時要注意,只有直接與字符串相加才會轉成字符串;②當參與 /
運算的兩個操作數都是整數時,表示整數除法;否則,表示浮點除法。③%
為整除取余符號,小數取余沒有意義,結果符號與被取余符號相同;④整數做被除數,0 不能做除數,否則報錯;⑤小數做被除數,整除 0 結果為 Infinity
,對 0 取模結果為 NaN
。
2、關系運算符
Java 包含豐富的關系運算符。要檢測相等性,可以使用兩個等號 ==
。例如,3==7
的值為 false,另外可以使用 !=
檢測不相等。例如,例如,3!=7
的值為 true。最后,還有經常使用的 <
(小于)、>
(大于)、<=
(小于等于)和 >=
(大于等于)運算符。
注意事項:①結果只能是true
和false
;②字符間的比較,比較的是其ASCII
值;③浮點數與整數比較,只要值相等,就返回true
。
3、邏輯運算符
Java 沿用了 C++ 的做法,使用 &&
表示邏輯 “與” 運算符,使用||表示邏輯 “或” 運算符。從 !=
運算符可以想到,感嘆號 ! 就是邏輯非運算符。&&
和 ||
運算符是按照 “短路” 方式來求值的:如果第一個操作數已經能夠確定表達式的值,第二個操作數就不必計算了。
注意事項:①&&
: 又叫短路運算符,A&&B
,如果A
為假,不會去計算B
的值,直接得到結果為 false;②&
: A&B
,即使A
為假,也會計算B
的值;③||
: 也是短路運算符,A||B
,如果A
為真,不會去計算B
的值,直接得到結果為 true;④|
: A|B
,即使A
為真,也會計算 B
的值;⑤^
: 異或,左右兩邊條件結果相同,結果就為 false,左右兩邊結果不同,結果就為 true。
4、位運算符(與邏輯運算符不是同一個概念)
處理整型類型時,可以直接對組成整型數值的各個位完成操作。這意味著可以使用掩碼技術得到整數中的各個位。位運算符包括:&
|
~
^
>>
<<
>>>
注意事項:①&
:“與” 運算符,兩個都為 1 時才為 1,其他情況均為 0;②|
:“或” 運算符,兩個都為 0 時才為 0,其他情況均為 1;③~
:“非” 運算符,取反,即 1 變為 0,0 變為1;④^
:“異或” 運算符,相同值為 0,不同值為 1 ;⑤>>
:“右移” 運算符,m>>n
,把 m 的二進制數右移 n 位,m 為正數,高位全部補 0,m 為負數,高位全部補 1;⑥<<
:“左移” 運算符,m<<n
,把 m 的二進制數左移 n 位,高位超出 n 位都舍棄,低位補 0 (此時可能出現正數變負數);⑦>>>
:“無符號右移” 運算符,m>>>n
,整數 m 表示的二進制右移 n 位,不論正負數,高位都補 0。
二、數學工具類
1、Math 數學類
在 Math 類中,包含了各種各樣的數學函數。在編寫不同類別的程序時,可能需要的函數也不同。下面的匯總了一部分最常用的方法。
方法名 | 方法說明 | 方法名 | 方法說明 |
---|---|---|---|
Math.sqrt(i); | 求平方根 | Math.rint(f); | 奇數向上,偶數向下取整(浮點型) |
Math.ceil(f); | 向上取整 | Math.floor(f); | 向下取整 |
Math.pow(m, n); | m 的 n 次冪 | Math.round(i); | 四舍五入取整(整形) |
Math.random(); | 0-1 的隨機數(浮點型) | Math.abs(-i); | 取絕對值 |
Math.max(a, b); | 返回大值 | Math.min(a, b); | 返回小值 |
Math.signum(i) | 小于 0 返回 -1 / 等于 0 返回 0 / 大于 0 返回 1 |
Math 數學類還提供了三角函數:
Math.sin(3.14); // 0.00159...
Math.cos(3.14); // -0.9999...
Math.tan(3.14); // -0.0015...
Math.asin(1.0); // 1.57079...
Math.acos(1.0); // 0.0
Math 還提供了幾個數學常量:
double pi = Math.PI; // 3.14159...
double e = Math.E; // 2.7182818...
Math.sin(Math.PI / 6); // sin(π/6) = 0.5
2、Random 類
要生成一個隨機數,可以使用 Random 對象。下面的匯總了一部分最常用的方法。
方法名 | 方法說明 | 方法名 | 方法說明 |
---|---|---|---|
nextInt(); | 隨機生成 int 數據類型范圍的數 | nextInt(i); | 從0開始,左閉右開隨機生成 |
nextLong() | 隨機生成 long 數據類型范圍的數 | nextFloat() | 生成一個 [0,1) 之間的 float |
nextDouble() | 生成一個 [0,1) 之間的 double |