【面试】JAVA六种运算符详解及优先级
文章目錄
- 一、算術運算符
- 二、賦值運算符
- 三、關系/比較運算符
- 四、邏輯運算符
- 五、位運算符
- 六、三元運算符
- 七、運算符的優先級
一、算術運算符
+ - * / % ++ --% 取模運算 - 取余運算
9%4=1, 3%8=3
-9%4=-1, 9%-4=1, -9%-4=-1
%的結果的正負看的是%左邊數據的正負 -> 如果左邊的數字是一個正數,那么結果就是正數;反之,那么結果就是負數。
++/-- 自增/自減運算
++/–如果在變量之前,那么先自增/自減,然后參與后續運算
++/–如果在變量之后,那么先將值取出來參與運算,然后變量再自增/自減
int i = 6;
// int j = i++ + ++i; -> 14
int j = ++i + i++; -> 14
==byte/short/char都可以參與自增運算=
char c = ‘b’;
int i = c + 2; -> 100
‘a’ ~ ‘z’ -> 97~122 ‘A’ ~ ‘Z’ -> 65~90 ‘0’ ~ ‘9’ -> 48~57
char c = ‘0’;
int i = c + 3; -> 51
二、賦值運算符
= += -= *= /= %= &= |= ^= <<= >>= >>>=byte/short/char可以參與賦值運算
除了=以外,其余的符號都要求這個變量得先有值
注意:在Java中不支持連等定義但是支持連等賦值
int i = 5;
i += i *= i -= 3; -> 15
i = 5 + (5 * (5 - 3));
int j = 7;
j -= j *= j++; -> -42
j = 7 - (7 * 7);
三、關系/比較運算符
==相等 !=不等 > < >= <=注意:不支持連著的比較方式
四、邏輯運算符
&與 |或 !非 ^異或 &&短路與 ||短路或注意:邏輯運算符算的是邏輯值
·true&true=true true&false=false false&true=false
false&false=false
·true|true=true true|false=true false|true=true
false|false=false
·!true=false !false=true
·true^true=false true^false=true false^true=true
false^false=false
&&:如果前邊的表達式的結果為false,則后邊的表達式不再運算,整個表達式的結果就確定為false
||:如果前邊的表達式的結果為true,則后邊的表達式就不再運算,整個表達式的結果就確定為true
注意:||如果在&&的前邊可以把&&短路掉
五、位運算符
& | ^ << >> >>> ~取反注意:位運算符針對整數的補碼進行運算,所以運算結果也是補碼。
所有的奇數的二進制的最右邊末尾的值為1,偶數的最末尾的值是0。二進制的第一位代表符號位。 1代表‘-’,0代表‘+’。
位運算符計算的是補碼,正數的原反補三碼相同,而負數則要將最后結果轉化為原碼。
負數的左移和右移
六、三元運算符
格式:邏輯值 ? 表達式1 : 表達式2如:a > b ? “abc” : true; -> 沒有辦法定義一個統一類型的結果來存儲,這種寫法就是錯誤的
三元表達式中的兩個式子的結果類型必須能夠轉化
七、運算符的優先級
~ ! ++ -- * / % + - << >> >>> 關系 邏輯 & | ^ 三元 賦值 一元 > 二元 > 三元 > 賦值總結
以上是生活随笔為你收集整理的【面试】JAVA六种运算符详解及优先级的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA数据类型的转换及数据的原反补三码
- 下一篇: 【面试】JAVA中交换值的三种方式