天天看點

java基礎知識——運算符運算符分類算術運算符指派運算符關系運算符邏輯運算符三元運算符位移運算符

目錄

運算符分類

算術運算符

/:除法

%:取餘運算符

+:加号

++,--自增自減運算符

指派運算符

關系運算符

邏輯運算符

基本規則

邏輯運算符&&與&,||與|的差別

三元運算符

位移運算符

左移運算符<<和右移運算符>>

無符号右移>>>

額外的運算符知識

概念:對常量和變量進行操作的符号

運算符分類

算術運算符,指派運算符,關系運算符,邏輯運算符,三元運算符

優先級:算數運算符>關系運算符>邏輯運算符

算術運算符

算數運算符 含義
+ 正号
- 負号
+
-
*
/ 除(即算數中整數的結果)
% 取模(即算術中的求餘數)
++ 自增(前)
++ 自增(後)
自減(前)
自減(後)

/:除法

整數相除隻能得到整數,要想得到小數,就必須有浮點數參與運算,比如3/4=0,而3/4.0=0.75

%:取餘運算符

得到的是兩個相除資料的餘數,結果的餘數符号是跟被模數的符号一緻的

例如:12%5=2  -12%5=-2  12%-5=2  -12%-5=-2

使用場景: %:判斷兩個資料是否整除。

+:加号

加号在Java中有兩種功能:
  1. 就是數學上普通的加号,做數字相加
  2. 要是加号兩邊有一邊是字元串,則做連接配接符,用于拼接出新的字元串

++,--自增自減運算符

對變量做加1或者減1的操作

單獨使用的時候,++或者--無論是放在變量的前面還是後面,結果是一樣的

參與操作的時候:

                 如果++或者--在變量的後面,先拿變量參與操作,後變量做++或者--

                 如果++或者--在變量的前面,先變量做++或者--,後拿變量參與操作

指派運算符

基本的指派運算符:=

擴充的指派運算符:+=,-=,*=,/=,%= 隐含了強制類型轉換

舉例:+= 把左邊和右邊的資料進行運算,最後指派給左邊。左邊的隻能是變量

Int a=10;

a+=10; 等同于 a=(a的資料類型)(a+10);

a最後的結果等于20

關系運算符

==,!=,>,>=,<,<=

關系運算符的結果都是boolean型,也就是要麼是true,要麼是false

邏輯運算符

&,|,^,!,&&,||

用法:邏輯運算符一般用于連接配接boolean類型的表達式或者值。

表達式:就是用運算符把常量或者變量連接配接起來的符合java文法的式子

算術表達式:a + b

         比較表達式:a == b(條件表達式)

基本規則

&邏輯與:有false則false。

|邏輯或:有true則true。

^邏輯異或:相同為false,不同為true。

!邏輯非:非false則true,非true則false。

邏輯運算符&&與&,||與|的差別

A:&&和&的差別?

         a:最終結果一樣。

         b:&&具有短路效果。左邊是false,右邊不執行。

         &是無論左邊是false還是true,右邊都會執行

B:||和|的差別?

         a:最終結果一樣

         b:||具有短路效果.左邊是true,右邊不執行

         |是無論左邊是false還是true,右邊都會執行

三元運算符

格式

         (關系表達式)?表達式1:表達式2;

         如果條件為true,運算後的結果是表達式1;

         如果條件為false,運算後的結果是表達式2;

條件表達式是boolean類型,表達式1和表達式2必須是可以統一成一個類型的結果,因為必須要有一個統一類型去接收結果,如果表達式1是int類型,而表達式2是String類型,就無法定義到底要什麼類型來接收結果,如果一個是int,一個是double,則可以定義結果為double來接收

例如:判斷一個成績,輸出優秀、及格還是不及格,要求:使用三目運算符完成

Int score = 99;

String result = score>80?"優秀":score>60?"及格":"不及格";

位移運算符

左移運算符<<和右移運算符>>

結論:
  1. 位運算符操作的都是整型的資料
  2. <<:在一定範圍内,每向左移一位,相當于乘以2

>>:在一定範圍内,每向右移一位,相當于除以2

最好我們把要位移的資料進行二進制展示,再做左移或者右移操作,左移最低位補0,而右移要看原來數字最高位是1還是0,如果是負數,最高位為1,則空缺位補上1,如果是整數,最高位是0,則空缺位補上0,這樣就知道最後移動後到底得到的數是多少

無符号右移>>>

被移資料的二進制最高位無論是0或者是1,空缺位都用0補

額外的運算符知識

java基礎知識——運算符運算符分類算術運算符指派運算符關系運算符邏輯運算符三元運算符位移運算符

圖中的1就相當于true,0就相當于false