Ze zmiennych, stałych i literałów, posługując się operatorami języka i nawiasami możemy budować wyrażenia. Wartości wyrażeń są wyliczane podczas działania programu i mogą być w różny sposób wykorzystane przez instrukcje sterujące wykonaniem programu. Kolejność wyliczeń zależy od priorytetów i wiązań operatorów użytych w wyrażeniach. Piorytety mówią o kolejności różnych operacji, wiązania określają kolejność operacji o tym samym priorytecie. W załączonych przykładach wykorzystamy następujące zmienne: czyDobrze typu boolean, a, b typu int, x typu double, o wartościach początkowych zgodnych z poniższym opisem:
boolean czyDobrze=true; int a=5,b=2; double x=0.6; string s="Cokolwiek"; |
| Priorytet, wiązanie | Operator | Działanie | Przykład | Wynik |
|---|---|---|---|---|
| 1 | . | Selektor obiektu | System.out | |
| [] | Indeks tablicy | tab[1] | ||
| () | Wywołanie funkcji | Pisz() | ||
| 2, prawe | ! | Negacja logiczna | !czyDobrze | false |
| ~ | Bitowe uzupełnienie do 1 | ~a | -6 | |
| + | Jednoargumentowy + (liczba dodatnia) | +a | 5 | |
| - | Jednoargumentowy - (liczba ujemna) | -a | -5 | |
| ++ | Operator zwiększania | ++a | 6 | |
| -- | Operator zmniejszania | --a | 4 | |
| (typ) | Konwersja (rzutowanie) | (int)x; | 0 | |
| instanceof | Stwierdzenie typu (dotyczy jedynie typów obiektowych) | s instanceof String | true | |
| 3, lewe | * | Mnożenie | a*b | 10 |
| / | Dzielenie | a/b | 2 | |
| % | Reszta z dzielenia | a%b | 1 | |
| 4, lewe | + | Dodawanie | a+b | 7 |
| - | Odejmowanie | a-b | 3 | |
| 5, lewe | << | Przesunięcie bitowe | a<<1 | 10 |
| >> | Przesunięcie bitowe w prawo | a>>1 | 2 | |
| >>> | Przesunięcie bitowe w prawo bez znaku | a>>>2 | 1 | |
| 6, lewe | < | Operatory relacyjne | a<b | false |
| <= | a<=b | false | ||
| >= | a>=b | true | ||
| > | a>b | true | ||
| 7, lewe | == | Operator równości | a==b | false |
| != | Operator nierówności | a!=b | true | |
| 8 | & | Bitowe AND | a&b | 0 |
| 9 | ^ | Bitowe XOR | b^b | 0 |
| 10 | | | Bitowe OR | b|b | 2 |
| 11 | && | Logiczne AND | (a<b)&&(a>0) | false |
| 12 | || | Logiczne OR | (a>b)||(a>0) | true |
| 13, prawe | ?: | Operator warunku | x=a<b?3:1 | x=1.0 |
| 14, prawe | = | Operatory przypisania | a=b | a=2 |
| *= | a*=b | a=a*b | ||
| /= | a/=b | a=a/b | ||
| %= | a%=b | a=a%b | ||
| += | a+=b | a=a+b | ||
| -= | a-=b | a=a-b | ||
| &= | a&=b | a=a&b | ||
| ^= | a^=b | a=a^b | ||
| |= | a|=b | a=a|b | ||
| <<= | a<<=b | a=a<<b | ||
| >>= | a>>=b | a=a>>b | ||
| >>>= | a>>>=b | a=a>>>b | ||