A precedência do operador determina a ordem em que os operadores em uma expressão são avaliados.
Antes de começar a ler este artigo, você deve ter um conhecimento básico de Operadores Java.
Agora, dê uma olhada na declaração abaixo:
int myInt = 12 - 4 * 2;
Qual será o valor de myInt? Será (12 - 4)*2, isto é , 16? Ou será 12 - (4 * 2), isto é , 4?
Quando dois operadores compartilham um operando comum, 4neste caso, o operador com a precedência mais alta é operado primeiro.
Em Java, a precedência de *é maior do que -. Portanto, a multiplicação é realizada antes da subtração e o valor de myInt será 4.
Tabela de precedência do operador
A tabela a seguir lista a precedência de operadores em Java; quanto mais alto ele aparecer na tabela, maior será sua precedência.
Precedência do operador Java| Operadores | Precedência | 
|---|---|
| incremento e decremento pós-fixados | ++-- | 
| incremento e decremento de prefixo e unário | ++--+-~! | 
| multiplicativo | */% | 
| aditivo | +- | 
| mudança | <<>>>>> | 
| relacional | <><=>=instanceof | 
| igualdade | ==!= | 
| bit a bit AND | & | 
| OR exclusivo bit a bit | ^ | 
| bit a bit inclusivo OU | | | 
| E lógico | && | 
| OU lógico | || | 
| ternário | ? : | 
| tarefa | =+=-=*=/=%=&=^=|=<<=>>=>>>= | 
Exemplo: precedência do operador
 class Precedence ( public static void main(String() args) ( int a = 10, b = 5, c = 1, result; result = a-++c-++b; System.out.println(result); ) )
Produto :
2
A precedência do operador do prefixo ++é maior do que a do -operador de subtração. Conseqüentemente,
resultado = a - ++ c - ++ b;
é equivalente a
resultado = a - (++ c) - (++ b);
Ao lidar com vários operadores e operandos em uma única expressão, você pode usar parênteses como no exemplo acima para maior clareza. A expressão entre parênteses é avaliada primeiro.
Associatividade de operadores em Java
Se uma expressão tiver dois operadores com precedência semelhante, a expressão será avaliada de acordo com sua associatividade (da esquerda para a direita ou da direita para a esquerda). Vamos dar um exemplo.
a = b = c;
Aqui, o valor de c é atribuído à variável b. Então, o valor de b é atribuído à variável a. Por quê? É porque a associatividade do operador = é da direita para a esquerda.
A tabela abaixo mostra a associatividade dos operadores Java junto com sua associatividade.
Precedência e associatividade do operador Java| Operadores | Precedência | Associatividade | 
|---|---|---|
| incremento e decremento pós-fixados | ++-- | da esquerda para direita | 
| incremento e decremento de prefixo e unário | ++--+-~! | direita para esquerda | 
| multiplicativo | */% | da esquerda para direita | 
| aditivo | +- | da esquerda para direita | 
| mudança | <<>>>>> | da esquerda para direita | 
| relacional | <><=>=instanceof | da esquerda para direita | 
| igualdade | ==!= | da esquerda para direita | 
| bit a bit AND | & | da esquerda para direita | 
| OR exclusivo bit a bit | ^ | da esquerda para direita | 
| bit a bit inclusivo OU | | | da esquerda para direita | 
| E lógico | && | da esquerda para direita | 
| OU lógico | || | da esquerda para direita | 
| ternário | ? : | direita para esquerda | 
| tarefa | =+=-=*=/=%=&=^=|=<<=>>=>>>= | direita para esquerda | 
Você não precisa memorizar tudo aqui. Na maioria das vezes, a precedência e a associatividade dos operadores fazem sentido por si só. Você sempre pode voltar a este artigo para referência em caso de dúvida. Além disso, você pode usar parênteses se achar que isso torna seu código mais fácil de entender.








