Precedência de opereadores em Java
Da maior para a menor
Da maior para a menor
Operador | Descrição |
---|---|
. [] () (tipo) | Máxima precedência: separador, indexação, parâmetros, conversão de tipo |
+ - ~ ! ++ -- | Operador unário: positivo, negativo, negação (inversão bit a bit), não (lógico), incremento, decremento |
* / % | Multiplicação, divisão e módulo (inteiros) |
+ - | Adição, subtração |
<< >> >>> | Translação (bit a bit) à esquerda, direita sinalizada, e direita não sinalizada (o bit de sinal será 0) |
< <= >= < | Operador relacional: menor, menor ou igual, maior ou igual, maior |
== != | Igualdade: igual, diferente |
& | Operador lógico e bit a bit |
^ | Ou exclusivo (xor) bit a bit |
| | Operador lógico ou bit a bit |
&& | Operador lógico e condicional |
|| | Operador lógico ou condicional |
?: | Condicional: if-then-else compacto |
= op= | Atribuição |
Considere a expressão:
1 | 2 ^ 3 * 2 & 13 | 2
- A análise é feita da esquerda para a direita.
- O primeiro cálculo a ser executado é 3 * 2, que resulta em 6.
- Em seguida, o resultado anterior é comparado com o 13, uma operação & (E): 6 & 13, que resulta em 4.
- Agora é feita uma operação de ^ (Ou exclusivo) com o 2 (mais a esquerda) e o 4 da operação anterior. O resultado é 6.
- É executada, então, a operação | (Ou) mais a esquerda: 1 | 6 que resulta em 7.
- Por último, é executadada a operação de | (Ou): 7 | 2 que também resulta em 7.
((1 | (2 ^ ((3 * 2) & 13))) | 2)