歡迎您光臨本站 註冊首頁

JAVA基礎之java運算符大百科

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
運算符用於執行程序代碼運算,會針對一個以上操作數項目來進行運算.下面介紹JAVA中的運算符.
一、算術運算符:
單目: (取正)-(取負) (自增1) - -(自減1) 雙目: - * / %(取余) 三目:a>b?true:false 說明:當a大於b的時候,為true(也就是冒號之前的值),否則為false;這整個運算符包括一個關係運算符(可以是">""<""!="等等),一個"?",一個":",冒號前後需要有兩個表達式或者是值或者是對象.
二、關係運算:
等於符號:==,不等於符號: != ,大於符號:>, 小於符號:<,大於等於符號: >= ,小於等於符號: <= .
三、位運算符 邏輯運算符:
位運算符 與(&)、非(~)、或(|)、異或(^)&:當兩邊操作數的位同時為1時,結果為1,否則為0.如1100&1010=1000 | :當兩邊操作數的位有一邊為1時,結果為0,否則為1.如1100|1010=1110 ~:0變1,1變0 ^:兩邊的位不同時,結果為1,否則為0.如1100^1010=0110 邏輯運算符 與(&&)、非(!)、或(||)
四、賦值運算符
= = -= *= /= %= &= ^= |= 《= 》=
五、instanceof運算符
該運算符是雙目運算符,左面的操作元是一個對象,右面是一個類.當左面的對象是右面的類創建的對象時,該運算符運算結果是true,否則是false.
六、 運算符綜述
Java 的表達式就是用運算符連接起來的符合Java 規則的式子.運算符的優先順序決定了表達式中運算執行的先後順序.例如,x<y&&!z相當於(x<y)&&(!z),沒有必要去記憶運算符號的優先順序別,在編寫程序時可盡量的使用括弧來實現你想要的運算次序,以免產生難以閱讀或含糊不清的計算順序.
運算符的結合性決定了並列相同級別的運算符的先後順序,例如,加減的結合性是從左到右,8-5 3 相當於(8-5) 3.邏輯否運算符 的結合性是右到左, x 相當於!(!x).表3.4是Java所有運算符的優先順序和結合性.
七 位移運算符
《 帶符號左移 》帶符號右移 >>> 無號右移
例子:int a1 = 8; // 0000 0000 0000 1000 System.out.println(a1>>>2); //// 0000 0000 0000 0010
輸出為 2
運算符優先順序
按優先順序從高到低排列如下:[ ]、 ( )、 、--、 !、 ~、 instanceof、 *、 /、 %、 、 -、《、 》、 >>>、 <>、 < 、=、 >、 、 ==、 !=、 &、^、& &、 ||、 ? :、= .
Java強制類型轉換
強制和轉換
Java語言和解釋器限制使用強制和轉換,以防止出錯導致系統崩潰.整數和浮點數運算符間可以來回強制轉換,但整數不能強制轉換成數組或對象.對象不能被強製為基本類型. Java中整數運算符在整數運算時,如果操作數是long類型,則運算結果是long類型,否則為int類型,絕不會是byte,short或char型.這樣,如果變數i被聲明為short或byte,i 1的結果會是int.如果結果超過該類型的取值範圍,則按該類型的最大值取模.


運算符操作
一、運算符" ",如果必要則自動把操作數轉換為String型.如果操作數是一個對象,它可定義一個方法toString()返回該對象的String方式,例如floata=1.0print("Thevalueofais" a "n"); 運算符用到的例子Strings="a=" a; =運算符也可以用於String.注意,左邊(下例中的s1)僅求值一次.s1 =a;//s1=s1 a//若a非String型,自動轉換為String型.
二、整數算術運算的異常是由於除零或按零取模造成的.它將引發一個算術異常.下溢產生零,上溢導致越界.例如:加1超過整數最大值,取模后,變成最小值.一個op=賦值運算符,和上表中的各雙目整數運算符聯用,構成一個表達式.整數關係運算符<,>,<=,>=,==和!=產生boolean類型的數據.
三、數組運算符數組運算符形式如下:<expression>[<expression>]可給出數組中某個元素的值.合法的取值範圍是從0到數組的長度減1.
四、對象運算符雙目運算符instanceof測試某個對象是否是指定類或其子類的實例.
例如:if(myObjectinstanceofMyClass) { MyClassanothermyObject=(MyClass)myObject; … }
是判定myObject是否是MyClass的實例或是其子類的實例.
五、浮點運算符浮點運算符可以使用常規運算符的組合:如單目運算符 、--,雙目運算符 、-、*和/,以及賦值運算符 =,-=,*=,和/=.此外,還有取模運算:%和%=也可以作用於浮點數,例如:a%b和a-((int)(a/b)*b)的語義相同.這表示a%b的結果是除完后剩下的浮點數部分.只有單精度操作數的浮點表達式按照單精度運算求值,產生單精度結果.如果浮點表達式中含有一個或一個以上的雙精度操作數,則按雙精度運算,結果是雙精度浮點數.
六、布爾運算符布爾(boolean)變數或表達式的組合運算可以產生新的boolean值,fales和true(記得是小寫).單目運算符!是布爾非.雙目運算符&,|和^是邏輯AND,OR和XOR運算符,它們強制兩個操作數求布爾值.為避免右側操作數冗餘求值,用戶可以使用短路求值運算符&&和||.
七、用戶可以使用==和!=,賦值運算符也可以用&=、|=、^=.三元條件操作符和C語言中的一樣.
八、 運算符用於表示直接加1操作.增量操作也可以用加運算符和賦值操作間接完成. lvalue(左值表示lvalue =1, lvalue也表示lvalue=lvalue 1.
九、--運算符用於表示減1操作. 和--運算符既可以作為前綴運算符,也可以做為後綴運算符.雙目整數運算符是:運算符操作** 加-減*乘/除%取模&位與|位或^位異或《左移 》右移(帶符號) >>>添零右移整數除法按零舍入.除法和取模遵守以下等式: (a/b)*b (a%b)==a


java運算符問題:
&是位
&&是邏輯
當&兩邊是整數時執行的是位運算,而兩邊是boolean值時執行的是邏輯運算, 如: 3&6 就是執行的位運算,結果是一個整數:
2 true&false 執行的就是邏輯運算,結果是一個boolean值:false &的邏輯運算和&&邏輯運算是存在一定不同的
&邏輯運算時兩邊都會計算的,而&&則在左邊為假時則直接返的是false不再計算右邊
舉個例子:
1:int[] a={1,2,3}; if(a[0]==2&a[3]==4){System.out.println("true")}
2:int[] a={1,2,3}; if(a[0]==2&&a[3]==4){System.out.println("true")}
這兩個例子中,第一個會拋出異常,而第二個則什麼不會輸出也不會拋異常 這是第一個例子中if語句中用的是&,兩邊的都會計算,當計算a[3]==4時拋出數組下標越界異常.第二個例子則在計算第一個式子a[0]==2發現結果為假則不再計算右邊,直接返回false,該例子不會輸出任何東西.


[火星人 ] JAVA基礎之java運算符大百科已經有370次圍觀

http://coctec.com/docs/java/show-post-59917.html