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.
Prioridade | operadores | Descrição | associatividade |
---|---|---|---|
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 |
2 | novo | Cria 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 |
5 | lt; 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 |
6 | lt; 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 |
6 | instancia de | Testa 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 |
8 | Bit a bit AND operação que combina dois valores. Uma discussão ofthis operador está fora do escopo deste livro. | Esquerda | |
8 | E 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 |
11 | Operaçã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.