程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JAVA基礎之java運算符大百科

JAVA基礎之java運算符大百科

編輯:關於JAVA

運算符用於執行程序代碼運算,會針對一個以上操作數項目來進行運算。下面介紹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所有運算符的優先級和結合性。

七 位移運算符

<< 帶符號左移 >>帶符號右移 >>> 無號右移

例子:

  1. int a1 = 8; // 0000 0000 0000 1000
  2. 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測試某個對象是否是指定類或其子類的實例。

例如:

  1. if(myObjectinstanceofMyClass)
  2. {
  3. MyClassanothermyObject=(MyClass)myObject;
  4. }

是判定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:

  1. int[] a={1,2,3};
  2. if(a[0]==2&a[3]==4){System.out.println("true")}

2:

  1. int[] a={1,2,3};
  2. if(a[0]==2&&a[3]==4){System.out.println("true")}

這兩個例子中,第一個會拋出異常,而第二個則什麼不會輸出也不會拋異常 這是因為第一個例子中if語句中用的是&,所以兩邊的都會計算,當計算a[3]==4時拋出數組下標越界異常。第二個例子則在計算第一個式子a[0]==2發現結果為假則不再計算右邊,直接返回false,所以該例子不會輸出任何東西。

希望通過本文的介紹,能給大家帶來幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved