標籤:數值 正數 false 結果 static fas else 隱式 等於
算數運算子
加號:在運算元值、字元、字串時其結果是不同的,當兩個字元相加得到的是ASCII碼錶值, 當兩個字串相加時表示將兩個字串串連在一起,從而組成新的字串。
除號:整數在使用除號操作時,得到的結果仍為整數(小數部分忽略),當整數除以0的時候,會引發算術異常。
正無窮大(Infinity):當一個正浮點類型數除以0時,或者正整數除以0.0時;
負無窮大(-Infinity):當一個負浮點類型數除以0時,或者負整數除以0.0時;
NaN(Not a Number):當0.0除以0.0時;
模數(求餘數):模數的符號忽略不計,結果的正負取決於被模數.
注意:無窮大和NaN都屬於double浮點類型,但是所有正無窮大都是相等的,所有負無窮大也是相等的,NaN永遠不相等,也不等於自己.
++和--詳解:
都只能操作變數,不能操作常量.
++: 表示當前操作變數自己累加1.
--: 表示當前操作變數自己減去1
自增:++,遞增操作符,使變數值增加1,有前置和後置之分,只能操作變數。
自減: -- ,遞減操作符,使變數值減去1,有前置和後置之分,只能操作變數。
自增和自減具體操作是一樣的,僅僅是一個是加1,一個是減1而已,
現在單講++: 代碼 result ++和 ++result,都將使result變數的值加1。 唯一的區別是: 前置(++result): 表示對result加1之後的結果進行運算, 後置(result++): 表示對result變數加1之前的值(原始值)進行運算。 如果僅僅執行簡單的遞增操作(唯寫result++或++result),那麼選用任意一個都可以。
int a1 = 5;a1 = a1 + 1;//6int temp = a1;int b1 = temp;//6--------------------------int a1 = 5;int temp = a1;//5a1 = a1 + 1;//6int b1 = temp;//5
賦值運算子
注意Java支援同時給多個變數賦值,好比支援同時聲明多個變數一樣,但因影響代碼可讀性,故也不推薦。
加等於:x += 5; 相當於 x = x + 5,但還包括隱式類型轉換。
public class Hello{ public static void main(String[] args){ int a, b, c; //不推薦 a = b = c = 5; //不推薦 short s = 5; //s = s + 3;//編譯出錯,需要強轉 s = (short)(s + 3); s += 3;//編譯OK,隱式類型轉換 }}
比較子
comparison operator
用於比較兩個變數或常量之間的關係,比較子的結果是boolean類型,其操作格式為: boolean result = 運算式A 比較子 運算式B;
==:等於,若比較的是兩個運算元都是數實值型別,即使他們的類型不同,只要值相同就返回true。 當然==也可以比較引用資料類型,比較的是地址
三元運算子
三元運算子,表示有三個元素參與的運算式,所以又稱為三目運算子,其語義表示if-else.
文法格式:X ? Y :Z,
其 中x為boolean類型運算式,先計算X的值,若X結果為true則整個三目運算運算式的結果是Y,否則就是Z。三目運算子結果的類型由Y和Z決定。
邏輯運算子
用於操作兩個boolean類型的變數或常量,結果類型也是boolean。 文法格式為:boolean result = 運算式A 邏輯運算子 運算式B;
&:表示並且,當運算元A和B都為true結果才為true,否則結果result 是false。
&&:和&結果相同,具有短路效果,如果左邊運算元A是false,result 一定為false,且不運行B的運算。
|:表示或者,A和B都為false結果result為false,只要有A或B是true,結果就是true。
||:和|結果相同,具有短路效果,如果左邊運算元A是true,result一定為true,且不運行B的運算。
^:判斷A和B是否不同,不同則為true,相同則為false。
!:取反,!true結果是false,!fasle結果是true。
位元運算符
位操作是程式設計中對位元模式按位或位元的一元和二元操作。
boolean的true和false,在底層使用一位的1和0來表示. true: 1 false:0
遵循規則:
&:參與運算的兩個數,若相應位元的值都為1,則該位結果值是1,否則是0。
|:參與運算的兩個數相應位中只要有一個1,結果就是1。
^:參與運算的兩個數相應位相同則結果為0,否則為1。
~ :表示把每個二進位位的“1”換成“0”,把“0”換成“1”。
<<:將運算元的二進位碼整體左移指定位元,左移之後的空使用“0”來補充。
>>:將運算元的二進位碼整體右移指定位元,右移之後的空使用“符號位”來補充: 若是正數使用“0”補充; 若是負數使用“1”補充;(操作負數:取反,求補,操作,取反,求補)
>>>:將運算元的二進位碼整體右移指定位元,右移之後的空位使用“0”來補充。
運算子操作的優先順序
java基礎 運算子