JAVA运算符\操作符
運算符
算術運算符
+加 -減 *乘 /除 %取模 ++自增 --自減 +字符串拼接運算
注意:
1. 兩個int類型運算完后之后,結果一定是int類型
2. byte和short類型在進行運算的時候,底層會自動提升為int類型,然后進行計算
3. 對于byte b = 3 + 4; JVM在編譯的時候會進行優化,編譯完成之后,實際上這句話就已經成了byte b = 7; ?
% 取模--取余
103%3 = 1 ?2%5 = 2 ?4%2=0
-5%3=-2 ?-1% 3=-1
5%-3=2 ?1%-3=1
-5%-3=-2
對于負數的取余,先按照正數的取余運算,運算完成之后看%左邊的數字的符號,如果左邊的數是正數,結果就是正數,如果左邊的數字是負數,結果是就是負數。
3.2%2=1.2 ?3%1.2=0.6 ?-3.5 % 1.7=-0.1
++ 自增
相當于在原來的基礎上加了1 ->i = i + 1;
只有自增運算的時候,++在前在后結果一樣。
++在前,這個變量是先自增,然后再參與其他的運算 int i = 5; int j = ++i;--> i = j = 6;
++在后,先進行其他運算,然后這個變量再自增 ?int i = 5; int j = i++; i=6;j = 5;
int i = 5;
int j = i++ + ++i; j=12
int j = ++i + i++; ?j=12
byte類型的數據可以進行自增運算嗎?
byte b = 3;
b++;---可以
在運算完成之后,Java在底層會對結果做一次強制類型的轉換,原來是byte類型就再轉換會byte類型
byte b = 127;
b++;
+ 字符串拼接運算
“a”?+ “b”?-> “ab”
2 + “a”?-> “2a”
?2 + 3 + “a”?-> “5a”
2 + ‘a’?-> 99
“a”?+ 2 + 3 -> “a23”
“a”?+ true-> “atrue”
賦值運算符
= += -= *= /= %= &= |= ^=
=進行賦值運算
int i = 5;
i += 2; -> i = i + 2;
byte b = 25;
b += 5;---> 可以
除了=以外的賦值運算符,在使用之前,這個變量必須有初始值。
比較/關系運算符
==等于 ?!=不等于 > < >= <= instanceof
3 != 4--> true
3 > 4-> false
instanceof 用來判斷對象與類的關系的
邏輯運算符
&And 與 ?| OR 或 !NOT非 ^異或 &&短路與 ||短路或
true&true=true ?true&false=false false&true=false ?false&false=false
true|true=true true|false=true false|true=true fasle=false=false
!true=false !false=true
true^true=false true^false=true false^true=true false^false=false
&&短路與,運算規則和&完全一樣,但是&&有短路特性,如果&&之前的運算結果確定為false,那么&&之后的運算就不再進行了。
位運算符
&與 |或 ^異或 <<左移 >>右移 >>>無符號右移 ~取反
注意:位運算是針對整數進行運算的
3 & 4
交換值的方式
方式一:
int i = 3,j = 4;
int temp = i;
i = j;
j = temp;
方式二:
int i = 3, j = 4;
i = i + j;
j = i - j; -> j = i + j - j-> j = i;
i = i - j;-> i = i + j - i-> i = j;
i += j; j = i - j;i-=j;
方式三:
int i = 3, j = 4;
i = i ^ j;
j = i ^ j; ?-> j = i ^ j ^ j-> j = i
i = i ^ j; -> i = i ^ j ^ i-> i =j;
i^=j; j^=i; i^=j;
?
總結
以上是生活随笔為你收集整理的JAVA运算符\操作符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA基本数据类型、数据类型转换
- 下一篇: JAVA数组及数组的应用