[java基礎]之 運算子

小杆子發表於2021-02-07
運算子概念

針對常量和變數之間進行運算的符號

運算子的分類

算術運算子 賦值運算子 關係運算子(比較運算子) 邏輯運算子 位運算子 三目運算子

算數運算子

【java基礎】之 運算子

+在java當中含義很多

1.作為正數 +5 單目運算子 a++ 雙目運算子a+b 三目運算子 a?b:c

2.加法運算

3.字串連線符

技巧:

1.如何計算中防止精度丟失

2.如何分離中一個數的每一位

eg: 1234

分離個位: 1234 / 1 % 10 意思為:將1234除1然後對10取餘。

分離十位: 1234 / 10 % 10

分離百位: 1234 / 100 % 10

分離千位: 1234 / 1000 % 10

自增自減運算子

++ – 屬於單目運算子

++表示自增1

–表示自減1

分為

單獨使用

表示自增或者自減,沒有任何區別

參與運算

如果++放在運算元的左邊,就表示先自增再參與運算

如果++放在運算元的右邊,就表示參與運算,再自增或者自減1

賦值運算子

【java基礎】之 運算子

=:這個等於號再Java中表示賦值的意思,真正數學意義上的相等是 == 在JavaScript當中還有=== 表示型別和數值都相等

擴充套件賦值運算子

+=,-=,*=,/=,%= 注意:擴充套件運算子包含強制型別轉換

eg:a+=10; a=(a的型別)a+10;

比較運算子

【java基礎】之 運算子

關係運算子的結果是boolean型別

注意點:

1、 > 、 < 、 >= 、 <= 只支援左右兩邊運算元是數值型別

2、 == 、 != 兩邊的運算元既可以是數值型別,也可以是引用型別

邏輯運算子

作用:連結boolean型別的表示式,邏輯運算子兩邊必須是boolean型別的表示式

boolean型別的表示式1 邏輯運算子 boolean型別的表示式2 邏輯運算子 boolean型別的表示式3 邏輯運算子 boolean型別的表示式n

& 按位與 x&y x和y 均為true,取值為true;否則取值false
| 按位或 x y
^ 異或 x^y x和y的值相異,取值為true;否則取值false
&& 短路與 x&&y x和y 均為true,取值為true;否則取值false
短路或
!x x為false,取值為true;否則取值false
& 和 && 的區別:

1.&表示按位與,無論什麼情況都會同時計算運算子兩邊的表示式

2.&&表示短路與,如果前面的表示式為false,那麼無論後面結果如何,都不會去計算後面表示式的值

3.&&開發中使用,&基本不用

4.&常用於位運算,位運算的效率比普通運算要高很多

! : 取反

當!的個數是奇數個的時候,結果相反

當!的個數是偶數個的時候,結果不變

條件運算子

| ?: |

格式:x?Y:Z

x表示式必須是boolean型別的表示式

執行流程:

首選計算X表示式的結果,如果X的結果為true,那麼整個表示式的結果就是Y的值

如果X的結果為false,那麼整個表示式的結果就是Z的值

位運算子

在計算機內部,資料是以二進位制編碼儲存的,Java變成語言允許我們對這些二進位制編碼進行位運算。

位操作符 使用方法 功能描述
& x&y x和y按位進行與運算
| x y
^ x^y x和y按位進行異或運算
~ ~y x按位進行非運算
>> x>>y 將x的二進位制編碼右移y位(前面填充的是符號位)
<< x<<y 將x的二進位制編碼左移y位
>>> x>>>y 將x的二進位制編碼右移y位(前面的位填0)

舉例:12的編碼是1100 ,7的編碼是0111,那麼:

12&7 結果的二進位制編碼為0100, 對應的值為4

12|7 結果的二進位制編碼為1111, 對應的值為15

12^7 結果的二進位制編碼為1011, 對應的值為11

因為

1100 1100 1100

&0111 |0111 ^0111

0100 1111 1011

如果對12進行移位操作:

12>>2; 結果的二進位制嗎為11,對應的值為3

7<<2; 結果的二進位制碼為11100,對應的值為28

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章