運算符
Java運算符,是一種特殊的符號。用表示數據的運算,賦值和比較。
- 算數運算符
- 賦值運算符
- 比較運算符
- 位運算符
- 邏輯運算符
- 三目運算符
1. 算數運算符
符號:加(+),減(-),乘(*),除(/),取餘(%)
自增:++
自減:--
作用在於:整數和浮點型。
最終的結果:十進制。只要是byte,short,int,long,char,float,double相加結構都是十進制。
所有的運算的結果的最小範圍一定是:---int
a. 自增:++
-
不同行:
int a =1; a++; ++a; System.out.println(a); //3 a++ 與 ++a 在不同行效果是等價的。
-
相同行:在運算中,或者邏輯判斷中,或者方法的傳參中就存在差異了
int a =5; int b = a++ + 6; System.out.println(b); // 11 System.out.println(a); // 6 int a1 =5; int b1 = ++a1 + 6; System.out.println(b1); // 12 System.out.println(a1); // 6 分析[int b = a++ + 6;]運算步驟: 先運算再遞加。 step1: a + 6 = 11 step2: a++ = 6 因此結果是 b=11,a=6 分析[int b = ++a + 6;]運算步驟: 先遞加再運算。 step1: ++a1 = 6 step2: a1+ 6 = 12 因此結果是 b1=12,a1=6
b. 自減:--
跟自增++同理
2. 賦值運算符
- 等號 =,只要賦值了就修改內存控制的二進制
- 基礎數據類型的默認值:
byte short int long 都是0
float double == 0.0
boolean == false
char==u0000 空格 -
賦值運算符的擴展:
+=,-=,*=,/=,%=
3. 比較運算符
< > == >= <= != 用於條件判斷中
a. == 邏輯判斷,是內存地址的比較-(二進制),還需考慮前面的數據類型。
b. = 賦值
"==" 數字是值的比較,對象(封裝數據類型)是內存地址的比較。
如果是基礎數據類型值比較==,值相等那麼都是true,如果是封裝數據類型都是false---hashCode()
4. 邏輯運算符
- 短路:或 || 且 && 非 !
- 不短路:或 | 且 & 非 ^ (從性能上講,不推薦使用。)
5. 三目運算符
格式:(邏輯判斷(boolean))?true:fakse;
6. 位運算符(7個) ---計算
>> 右移運算符
>>> 無符號右移
<< 左移,二進制整體往左邊移動兩位,空白位用0填充。
& 按位與,如果兩個同時爲1返回就是1,其他的都是0。
| 按位或,如果有一位是1那麼就是1,其他的都是0。
^ 按位異或,兩個相同的時候0,不同時返回1。
~ 按位非,單數字取反
作用:快速計算一個數字想要得到結果,最終都是以二進制的方式進行計算。
思路: 把十進制轉成二進制,再進行移位操作。
true & false ---邏輯符合
5 & 9 ---位運算