1關于+:
1)可以作為一個運算符
2)字元串拼接符号
3)表示一個資料:正數
雙引号内的 資料是常量
字元串+任何資料---因為字元串在前面 是以都是一個新的字元串
常量+字元串--->因為整數在前面是以要先進行計算再進行拼接
("hello"+'a'+1)------->helloa1
('a'+1+"hello")-------->98hello
2算數運算符
Java中的運算符
算數運算符
指派運算符
比較運算符
邏輯運算符(重點)
位運算符
三元運算符(重點)
算數運算符:
基本的算數運算符:
+ - * / %
加 減 乘 除 模(餘數)
擴充的運算符:
++ --
1)單獨使用
2)參與運算
第一種情況:單獨使用
++和--符号無論在資料的前面,還是在資料的後面 都是對資料進行自加一和自減一
第二中情況:參與運算
++和--符号在資料的前面 時:先對資料進行自增或自減 再參與運算
++和--符号在資料的後面 時:先進行運算 再進行自增和自減
int a=10;
int a=10;
int a=10;
a=b++; //a=10 b=11 c=10
c=--a; //a=9 b=11 c=9
b=++a; //a=10 b=10 c=9
a=c--; //a=9 b=10 c=8
請問a b c 等于多少?
int x=4;
int y=(x++)+(++x)+(x*10) // 4+6+60=70
問y等于多少
注意事項:1)第一題 每一步都要進行分析a b c 的值 直到最後一步完成
2)第二題 (x++)相當于先指派再運算 即将x的值先指派給()---4本身再參與運算
指派運算符
面試題 :
short s=1;
1)s=s+1;
2)s+=1; //僅僅是計算結果相當于s=s+1
問你哪句 會編譯失敗?
答案:第一種失敗 byte short char 三種之間不轉換 一旦參與運算 必須進行資料轉換才可以
第二中:擴充的+= -= *= /= %=
這些擴充的指派運算符中都隐藏一個強制轉換故而不會編譯出錯
關系運算符
<> <= >= == !=
特點:無論表達式簡單還是複雜 最終的結果就是true或者 false
邏輯運算符
在實際應用中 進行邏輯判斷的時候經常使用
基本的邏輯運算符号:
邏輯單與& //表示并列關系 有false則false
邏輯單或| //表示或的關系 有true則true
邏輯異或^ //相同則為false 不同則為true (舉例:男女關系)
邏輯非! //非true則false 偶數個非則是它本身
擴充的邏輯運算符
邏輯雙與&&
邏輯雙與和邏輯單與的異同
相同點:都是并列關系
不同點:邏輯雙與具有短路效果
邏輯雙或||
邏輯雙或和邏輯單或的異同
相同點:都是或的關系
不同點:邏輯雙或具有短路效果
故而:在開發中對于邏輯關系的處理一般都用邏輯雙與和邏輯雙或來完成
位運算符
位運算符符号(其符号與邏輯符号一樣 )
位運算符連接配接的是兩個數值
位于:& //特點:有零則零
位或:| //
位異或:^
反碼:~
位移符号:
<<:左移 ---->将資料的二進制計算出來之後 ---->向左移動,在右邊補0 (将這個符号左邊的資料乘以2的移動次幂)
>>:右移 ---->二進制資料--->向右移動--->最高符号位如果是0 左邊補0---如果最高符号位是1 左邊補1 (将這個符号左邊的資料除以2的移動次幂)
>>>:無符号右移---->無論最高符号位是0還是1 左邊補0
3------二進制資料 0b11
4------二進制資料 0b100
位與&的特點: 有零則零
位或|的特點:有1則1
位異或^的特點:相同位0 不同為1
反碼~的特點:按位取反
位異或的特點:一個資料被另一個資料位異或兩次其值是它本身
(a^b^b) ---->值是a
(a^b^a) ---->值是b
a=a^b;
b+a^b; //b=a^b^b; ------>a
a=a^b; //a=a^b^a; ------->b
三元運算符(三目運算符)
三元運算符
格式:
(表達式)? 執行truede結果:執行false的結果
執行流程:首先判斷表達式是否成立 :如果成立執行true的結果,否則執行false的結果
需求:比較兩個資料的大小
案例:
三個和尚比身高,請用Java程式比較最高的人
已知:三個和尚 都存在各自的身高
定義三個變量
三個變量中比較最大的值
使用中間變量的temp記錄第一個和第二個之間的最大值
int temp=(firPeo>secPeo)?firPeo:secPeo
三元運算符可以嵌套 (不推薦)
鍵盤輸入資料scanner類
Java提供了一個文本掃描器:scanner
鍵盤錄入資料的操作步驟:
在Java中 隻要不是在Java.lang包下的類都需要導包
1)導包
在class的上面書寫
格式:import Java.util.Scanner;
2)固定格式
Scanner 對象名稱=new Scanner(System.in);
3)接收資料//錄入資料
int 變量名=對象名稱.nextlnt();//固定格式