| Operatore |
Operazione |
Esempi |
| + |
concatenazione |
a + b "Ciao da " + nome |
Nota:
l'operatore + ripetuto tra diversi valori/variabili esegue, procedendo da sinistra verso destra,
la somma algebrica fino a che i
valori/variabili sono numerici, dal momento in cui trova la prima stringa in poi, esegue la
concatenazione di stringhe, anche in presenza di valori numerici successivi
Esempi:
"abc" + "def" restituisce "abcdef"
"3"+"2"+"abcdef" restituisce "32abcdef"
3+2+"abcdef" restituisce "5abcdef"
Per eseguire la concatenazione dall'inizio dell'espressione si può concatenare una stringa vuota
ad
inizio espressione, come mostrato di seguito:
""+3+2+"abcdef" restituisce "32abcdef"
| Operatore |
Operazione |
Esempi |
| += |
somma e assegnamento |
a += 10 → a = a + 10 a += b → a
= a
+ b
|
| -= |
differenza e assegnamento |
a -= 10 → a = a - 10 a -= b → a
= a
- b
|
| *= |
prodotto e assegnamento |
a *= 10 → a = a * 10 a *= b → a
= a
* b
|
| /= |
divisione e assegnamento |
a /= 10 → a = a / 10 a /= b → a
= a
/ b
|
| %= |
modulo e assegnamento |
a %= 10 → a = a % 10 a %= b → a
= a
% b
|
| &= |
and bitwise e assegnamento |
a &= b → a = a & b |
| |= |
or bitwise e assegnamento |
a != b → a = a | b |
| ^= |
xor bitwise e assegnamento |
a ^= b → a = a ^ b |
| >>= |
shift a destra e assegnamento |
a >>= 2 → a = a >> 2 |
| <<= |
shift a sinistra e assegnamento |
a <<= 2 → a = a << 2 |
| >>>= |
shift a destra senza segno e assegnamento |
a >>>= 2 → a = a >>> 2 |
Nota:
Gli operatori hanno una priorità che determina l'ordine in cui
essi
saranno valutati, in assenza di
specifica esplicita da parte del programmatore, attraverso l'uso delle parentesi tonde.
In generale gli operatori unari hanno priorità, seguono quelli binari con un ordine di priorità
specifico.
Per evitare, ad ogni modo, risultati non attesi, si consiglia l'utilizzo
esplicito delle parentesi tonde,
per determinare l'ordine di esecuzione delle operazioni più articolate.
Nella tabella che segue sono indicati gli operatori in Java in ordine di priorità decrescente,
dall'alto
verso il basso.
| operatori postfissi |
espr++ espr-- |
| operatori unari |
++espr --espr -espr !espr |
| operatori moltiplicativi |
* / % |
| operatori additivi |
+ - |
| operatori relazionali |
< <=> >=
|
| operatori di uguaglianza/disuguaglianza |
== != |
| AND bitwise |
& |
| XOR bitwise |
^ |
| OR bitwise |
| |
| AND logico |
&& |
| OR logico |
|| |
| operatori di assegnazione |
= += -= *= /= %= &= |= ^= <<=>>= >>>= |
Nota:
Gli operatori sono valutati in base alla priorità e per uguale priorità
da
sinistra a destra.
Gli operatori binari sono associativi a sinistra, cioè per
esempio
a+b+c
equivale a (a+b)+c: le
assegnazioni sono associative a destra, cioè a=b=c equivale a
a=(b=c).