Programação Java: Precedência de operador

É essencial saber como Java interpreta os símbolos que você usa para executar operações específicas e em que ordem ele interpreta-los. Caso contrário, você poderia escrever um aplicativo com um resultado em mente e receber um resultado completamente diferente. Sempre que tiver uma dúvida sobre como Java irá interpretar um símbolo que você usa, você pode confiar na informação nesta tabela para ajudá-lo.

Java Operador Ordem de Precedência
PrioridadeoperadoresDescriçãoassociatividade
1[]O índice de matriz usado para especificar qual elemento da matriz para acessar.Esquerda
1()chamada de método ou agrupamento. Agrupamento é especialmente importante inthat ela muda as regras normais para interagir com os operadores, como a realização de adição antes da multiplicação.Esquerda
1.Acesso Membro usado para interagir com um membro de um objeto.Esquerda
2++Prefixo ou incremento postfix. Adiciona um valor de 1 a thevariable.Certo
2--Prefixo ou decréscimo postfix. Remove um valor de 1 de thevariable.Certo
2+
-
além Unário ou menos. Define o sinal da variável. O plusoperator nunca é usado porque as variáveis ​​são positivas por default.The operador de subtração nega a variável.Certo
2~bit a bit Unário Não operador inverte os bits em uma variável. Inother palavras, faz a variável o oposto do que se tratava. Porexemplo, a 5 (binário 00000101) torna-se uma -6 (binary11111010).Certo
2!Unário operador booleano não é utilizado em avaliações booleanas toturn verdadeira em falso e falso para verdadeiro.Certo
2(digitar)Executa um elenco para alterar o tipo de uma variável em anothertype.Certo
2novoCria um novo objeto com base na classe fornecido.Certo
3*
/
%
Executa as mathoperations multiplicação, divisão e restante.Esquerda
4+
-
Executa as operações de adição e subtração de matemática.Esquerda
4+Concatena duas cordas para produzir uma única corda.Esquerda
5lt; lt;
>>
>>>
operadores de deslocamento bit a bit que raramente são utilizados para applicationdevelopment. A discussão desses operadores é além do escopo ofthis livro.Esquerda
6lt;
lt; =
Executa a comparação de lógica de dois valores para menos de orless do que e igual a.Esquerda
6>
> =
Executa a comparação de lógica de dois valores para uma maior thanor superior e igual a.Esquerda
6instancia deTesta se um objeto é uma instância de um particularclass.Esquerda
7==Determina se os dois valores são exatamente iguais.Esquerda
7!=Determina se os dois valores não são iguais.Esquerda
8Bit a bit AND operação que combina dois valores. Uma discussão ofthis operador está fora do escopo deste livro.Esquerda
8E lógico de operação que combina os resultados das duas logicalevaluations. Em muitos casos, tanto a condição A e a condição B mustbe verdadeiras para uma avaliação inteira para ser verdade.Esquerda
9^operação bit a bit exclusivo ou (XOR), que combina duas discussão values.A deste operador está fora do escopo da thisbook.Esquerda
9^operação lógica XOR que combina o resultado de dois logicalevaluations. A fim de ser verdade, qualquer condição ou estado Um Bmust ser verdade, mas não ambos.Esquerda
10|Bit a bit OR operação que combina dois valores. Uma discussão ofthis operador está fora do escopo deste livro.Esquerda
10|Lógico OR operação que combina o resultado de dois logicalevaluations. A fim de ser verdade, condição A ou condição B, orboth deve ser verdade.Esquerda
11Operação lógica AND que é usado como parte de um logicalexpression para determinar o valor de verdade de ambas as expressões. Bothmust ser verdade para toda a expressão para ser verdade.Esquerda
12||Operação lógica OR que é usado como parte de um logicalexpression para determinar o valor de verdade de ambas as expressões. Eitheror ambos devem ser verdade para toda a expressão para ser verdade.Esquerda
13? :Executa uma avaliação condicional. veja a # 147 UsingRelational e operadores condicionais # 148- seção deste detalhes chapterfor.Certo
14=Atribui o valor especificado para a variável.Certo
14* = / = + = - =% =
lt; lt; = >> = >>> =
= ^ = | =
operação combinada e atribuição. Java executa a requestedoperation, como adição, em seguida, atribui o resultado à thevariable.
Os operadores de atribuição combinadas incluem um número de operatorsthat executar operações bit a bit. A discussão desses operadores isoutside do escopo deste livro.
Certo

A coluna Prioridade é provavelmente o mais importante porque define a ordem estrita em que Java interpreta os símbolos exibidos na coluna Operadores. O operador maior na tabela tem sempre precedência sobre um operador que é inferior na tabela.

A coluna Associativity também é importante. Na maioria dos casos, Java interpreta símbolos da esquerda para a direita, o que significa que os símbolos têm uma esquerda associatividade. No entanto, em alguns casos, o operador trabalha, da direita para a esquerda.

Por exemplo, quando se utiliza o operador =, Java interpreta a informação para a direita do operador em primeiro lugar, e, em seguida, atribui o resultado para o operando à esquerda do operador. Assim, o fluxo é da direita para a esquerda, o que torna o operador = direito associativo.

associatividade é um termo da matemática que define como elementos em uma interagem operação binária. Na maioria dos casos, Java usa associatividade esquerda. Começa a partir do lado esquerdo de um grupo de operadores e funciona para o lado direito.

Por exemplo, se tiver 1 + 2 + 3 como uma equação, Java adiciona 1 e 2 em primeiro lugar, em seguida, adiciona 3 para o resultado da primeira operação. Você pode controlar a associatividade usando parênteses. O artigo em Math.com fornece mais informações sobre este tópico.

menu