Java Essencial: Guia Completo dos Operadores Principais
Java fornece um rico conjunto de operadores para manipular variáveis. Podemos dividir todos os operadores Java nos seguintes grupos:
- Operadores Aritméticos
- Operadores Relacionais
- Operadores Bitwise
- Operadores Lógicos
- Operadores de Atribuição
- Operadores Diversos
Operadores Aritméticos
Operadores aritméticos são usados em expressões matemáticas da mesma forma que são usados em álgebra. A tabela a seguir lista os operadores aritméticos:
Assuma que a variável inteira A contém 10 e a variável B contém 20, então:
Mostrar Exemplos
| Operador | Descrição | Exemplo |
|---|---|---|
| + (Adição) | Adiciona valores em ambos os lados do operador. | A + B dará 30 |
| - (Subtração) | Subtrai operando da direita do operando da esquerda. | A - B dará -10 |
| * (Multiplicação) | Multiplica valores em ambos os lados do operador. | A * B dará 200 |
| / (Divisão) | Divide operando da esquerda pelo operando da direita. | B / A dará 2 |
| % (Módulo) | Divide operando da esquerda pelo operando da direita e retorna resto. | B % A dará 0 |
| ++ (Incremento) | Aumenta o valor do operando em 1. | B++ dá 21 |
| -- (Decremento) | Diminui o valor do operando em 1. | B-- dá 19 |
Operadores Relacionais
Existem os seguintes operadores relacionais suportados pela linguagem Java.
Assuma que a variável A contém 10 e a variável B contém 20, então:
Mostrar Exemplos
| Operador | Descrição | Exemplo |
|---|---|---|
| == (igual a) | Verifica se os valores de dois operandos são iguais ou não, se sim a condição torna-se verdadeira. | (A == B) não é verdadeiro. |
| != (diferente de) | Verifica se os valores de dois operandos são iguais ou não, se valores não são iguais a condição torna-se verdadeira. | (A != B) é verdadeiro. |
| > (maior que) | Verifica se o valor do operando da esquerda é maior que o valor do operando da direita, se sim a condição torna-se verdadeira. | (A > B) não é verdadeiro. |
| < (menor que) | Verifica se o valor do operando da esquerda é menor que o valor do operando da direita, se sim a condição torna-se verdadeira. | (A < B) é verdadeiro. |
| >= (maior ou igual a) | Verifica se o valor do operando da esquerda é maior ou igual ao valor do operando da direita, se sim a condição torna-se verdadeira. | (A >= B) não é verdadeiro. |
| <= (menor ou igual a) | Verifica se o valor do operando da esquerda é menor ou igual ao valor do operando da direita, se sim a condição torna-se verdadeira. | (A <= B) é verdadeiro. |
Operadores Bitwise
Java define vários operadores bitwise, que podem ser aplicados aos tipos inteiros, long, int, short, char e byte.
Operador bitwise trabalha em bits e realiza operação bit-a-bit. Assuma se a = 60 e b = 13; agora em formato binário eles serão como segue:
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
A tabela a seguir lista os operadores bitwise:
Assuma que a variável inteira A contém 60 e a variável B contém 13 então:
Mostrar Exemplos
| Operador | Descrição | Exemplo |
|---|---|---|
| & (bitwise and) | Operador AND Binário copia um bit para o resultado se ele existe em ambos os operandos. | (A & B) dará 12 que é 0000 1100 |
| | (bitwise or) | Operador OR Binário copia um bit se ele existe em qualquer operando. | (A | B) dará 61 que é 0011 1101 |
| ^ (bitwise XOR) | Operador XOR Binário copia o bit se ele está definido em um operando mas não em ambos. | (A ^ B) dará 49 que é 0011 0001 |
| ~ (bitwise compliment) | Operador Complemento de Um Binário é unário e tem o efeito de 'inverter' bits. | (~A ) dará -61 que é 1100 0011 na forma complemento de 2 devido a número binário com sinal. |
| << (left shift) | Operador Deslocamento à Esquerda Binário. O valor do operando da esquerda é movido à esquerda pelo número de bits especificado pelo operando da direita. | A << 2 dará 240 que é 1111 0000 |
| >> (right shift) | Operador Deslocamento à Direita Binário. O valor do operando da esquerda é movido à direita pelo número de bits especificado pelo operando da direita. | A >> 2 dará 15 que é 1111 |
| >>> (zero fill right shift) | Operador Deslocamento à Direita Preenchimento Zero. O valor do operando da esquerda é movido à direita pelo número de bits especificado pelo operando da direita e valores deslocados são preenchidos com zeros. | A >>>2 dará 15 que é 0000 1111 |
Operadores Lógicos
A tabela a seguir lista os operadores lógicos:
Assuma variáveis Booleanas A contém true e variável B contém false, então:
Mostrar Exemplos
| Operador | Descrição | Exemplo |
|---|---|---|
| && (logical and) | Chamado Operador AND Lógico. Se ambos os operandos são não-zero, então a condição torna-se verdadeira. | (A && B) é false |
| || (logical or) | Chamado Operador OR Lógico. Se qualquer um dos dois operandos são não-zero, então a condição torna-se verdadeira. | (A || B) é true |
| ! (logical not) | Chamado Operador NOT Lógico. Usado para reverter o estado lógico de seu operando. Se uma condição é verdadeira então operador NOT Lógico tornará falsa. | !(A && B) é true |
Operadores de Atribuição
Seguindo estão os operadores de atribuição suportados pela linguagem Java:
Mostrar Exemplos
| Operador | Descrição | Exemplo |
|---|---|---|
| = | Operador de atribuição simples. Atribui valores dos operandos da direita ao operando da esquerda. | C = A + B atribuirá valor de A + B em C |
| += | Operador Adicionar E Atribuir. Adiciona operando da direita ao operando da esquerda e atribui resultado ao operando da esquerda. | C += A é equivalente a C = C + A |
| -= | Operador Subtrair E Atribuir. Subtrai operando da direita do operando da esquerda e atribui resultado ao operando da esquerda. | C -= A é equivalente a C = C – A |
| *= | Operador Multiplicar E Atribuir. Multiplica operando da direita com operando da esquerda e atribui resultado ao operando da esquerda. | C *= A é equivalente a C = C * A |
| /= | Operador Dividir E Atribuir. Divide operando da esquerda com operando da direita e atribui resultado ao operando da esquerda. | C /= A é equivalente a C = C / A |
| %= | Operador Módulo E Atribuir. Pega módulo usando dois operandos e atribui resultado ao operando da esquerda. | C %= A é equivalente a C = C % A |
| <<= | Operador Deslocamento Esquerda E Atribuir. | C <<= 2 é mesmo que C = C << 2 |
| >>= | Operador Deslocamento Direita E Atribuir. | C >>= 2 é mesmo que C = C >> 2 |
| &= | Operador Bitwise AND E Atribuir. | C &= 2 é mesmo que C = C & 2 |
| ^= | Operador XOR bitwise exclusivo e atribuição. | C ^= 2 é mesmo que C = C ^ 2 |
| |= | Operador OR bitwise inclusivo e atribuição. | C |= 2 é mesmo que C = C | 2 |
Operadores Diversos
Existem poucos outros operadores suportados pela Linguagem Java.
Operador Condicional ( ? : )
Operador condicional também é conhecido como operador ternário. Este operador consiste de três operandos e é usado para avaliar expressões Booleanas. O objetivo do operador é decidir qual valor deve ser atribuído à variável. O operador é escrito como:
variavel x = (expressao) ? valor_se_verdadeiro : valor_se_falso
Seguindo está um exemplo:
Exemplo
Demo Ao Vivo
public class Test {
public static void main(String args[]) {
int a, b;
a = 10;
b = (a == 1) ? 20: 30;
System.out.println( "Valor de b é : " + b );
b = (a == 10) ? 20: 30;
System.out.println( "Valor de b é : " + b );
}
}
Isto produzirá o seguinte resultado:
Saída
Valor de b é : 30 Valor de b é : 20
Operador instanceof
Este operador é usado apenas para variáveis de referência de objeto. O operador verifica se o objeto é de um tipo particular (tipo de classe ou tipo de interface). operador instanceof é escrito como:
(Variável de referência de objeto) instanceof (tipo de classe/interface)
Se o objeto referido pela variável no lado esquerdo do operador passa na verificação IS-A para o tipo de classe/interface no lado direito, então o resultado será true. Seguindo está um exemplo:
Exemplo
Demo Ao Vivo
public class Test {
public static void main(String args[]) {
String name = "James";
// seguinte retornará true já que name é tipo String
boolean result = name instanceof String;
System.out.println( result );
}
}
Isto produzirá o seguinte resultado:
Saída
true
Este operador ainda retornará true, se o objeto sendo comparado for compatível com atribuição com o tipo no lado direito. Seguindo está mais um exemplo:
Exemplo
Demo Ao Vivo
class Vehicle {}
public class Car extends Vehicle {
public static void main(String args[]) {
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result );
}
}
Isto produzirá o seguinte resultado:
Saída
true
Precedência de Operadores Java
Precedência de operadores determina o agrupamento de termos em uma expressão. Isso afeta como uma expressão é avaliada. Certos operadores têm precedência maior que outros; por exemplo, o operador de multiplicação tem precedência maior que o operador de adição:
Por exemplo, x = 7 + 3 * 2; aqui x é atribuído 13, não 20 porque operador * tem precedência maior que +, então ele primeiro é multiplicado com 3 * 2 e então adiciona em 7.
Aqui, operadores com a maior precedência aparecem no topo da tabela, aqueles com a menor aparecem no fundo. Dentro de uma expressão, operadores de maior precedência serão avaliados primeiro.
| Categoria | Operador | Associatividade |
|---|---|---|
| Pós-fixado | expression++ expression-- | Esquerda para direita |
| Unário | ++expression –-expression +expression –expression ~ ! | Direita para esquerda |
| Multiplicativo | * / % | Esquerda para direita |
| Aditivo | + - | Esquerda para direita |
| Deslocamento | << >> >>> | Esquerda para direita |
| Relacional | < > <= >= instanceof | Esquerda para direita |
| Igualdade | == != | Esquerda para direita |
| Bitwise AND | & | Esquerda para direita |
| Bitwise XOR | ^ | Esquerda para direita |
| Bitwise OR | | | Esquerda para direita |
| Lógico AND | && | Esquerda para direita |
| Lógico OR | || | Esquerda para direita |
| Condicional | ?: | Direita para esquerda |
| Atribuição | = += -= *= /= %= ^= |= <<= >>= >>>= | Direita para esquerda |
O que Vem a Seguir?
O próximo capítulo explicará sobre controle de loop na programação Java. O capítulo descreverá vários tipos de loops e como esses loops podem ser usados no desenvolvimento de programas Java e para quais propósitos eles estão sendo usados.
Java
- Dominando Operadores Java: Tipos, Sintaxe e Exemplos Práticos
- Dominando Entrada e Saída em Java: Imprimir, Ler e Formatados Seus Dados
- Comentários em Java: Tipos, Uso e Boas Práticas
- Dominando o Loop for Aprimorado em Java: Sintaxe, Exemplos e Boas Práticas
- Dominando Strings em Java: Criação, Métodos e Boas Práticas
- Dominando Interfaces em Java: Conceitos, Implementação e Boas Práticas
- Dominando Classes Internas Anônimas em Java: Definição, Sintaxe e Exemplos Práticos
- Dominando Try-With-Resources em Java: Gerenciamento Automático de Recursos Explicado
- Anotações em Java Explicadas: Tipos, Posicionamento e Exemplos Práticos
- Asserções em Java: Guia Prático para Detectar Bugs e Garantir Confiabilidade do Código