English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriais Básicos de Java

Java controle de fluxo

Java array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Tratamento de Exceções Java

Java lista (List)

Java fila (Queue)

Java conjunto Map

Java conjunto Set

Java entrada e saída (I/O)/O)

Java Reader/Writer

Outros tópicos do Java

Operadores Java

Um dos usos mais básicos de um computador é executar operações matemáticas, e como linguagem de programação, o Java também oferece um conjunto rico de operadores para manipular variáveis. Podemos dividir os operadores em os seguintes grupos:

  • Operadores aritméticos

  • Operadores de relação

  • Operadores de bit

  • Operadores lógicos

  • Operadores de atribuição

  • Outros operadores

Operadores aritméticos

Os operadores aritméticos são usados em expressões matemáticas, e sua função é a mesma que na matemática. A tabela a seguir lista todos os operadores aritméticos.

Os exemplos na tabela assumem que a variável inteira A tem o valor10,o valor da variável B é20:

                Operador                Descrição                Exemplo
+adição - os valores à esquerda e à direita do operador de adiçãoA + B igual a 30
-subtração - o operando à esquerda subtraído pelo operando à direitaA - B igual a -10
*multiplicação - os valores à esquerda e à direita do operador de multiplicaçãoA * B igual a200
/divisão - o operando à esquerda dividido pelo operando à direitaB / A igual a2
obter resto - o resto da divisão do operando à esquerda pelo operando à direitaB % A igual a 0
++incremento: o valor do operando aumenta1B++ ou ++B igual a 21(diferenças detalhadas a seguir)
--decremento: o valor do operando diminui1B-- ou --B igual a 19(diferenças detalhadas a seguir)

Exemplo

O seguinte exemplo simples de programa demonstra os operadores aritméticos. Copie e cole o seguinte programa Java e salve como arquivo ArithmeticOperator.java, em seguida, compile e execute este programa:

class OperadorAritmético {
    public static void main(String[] args) {
        
        double número1 = 12.5, número2 = 3.5, result;
        
        //usando o operador de adição
        result = número1 + número2;
        System.out.println("número",1 + número2 = \ + result);
        
        //usando o operador de subtração
        result = número1 - número2;
        System.out.println("número",1 - número2 = \ + result);
        
        //usando o operador de multiplicação
        result = número1 * número2;
        System.out.println("número",1 * número2 = \ + result);
        //usando o operador de divisão
        result = número1 / número2;
        System.out.println("número",1 / número2 = \ + result);
        
        // usando o operador de resto
        result = número1 % número2;
        System.out.println("número",1 % número2 = \ + result);
    }
}

O resultado da compilação e execução dos exemplos acima é o seguinte:

número1 + número2 = 16.0
número1 - número2 = 9.0
número1 * número2 = 43.75
número1 / número2 = 3.5714285714285716
número1 % número2 = 2.0

Operadores de aumento/diminuição

1、aumento(++)diminuição(--)operadorÉ um operador aritmético especial, que requer dois operandos para operar entre os operadores aritméticos, enquanto os operadores de aumento e diminuição são um operando.

public class selfAddMinus{
    public static void main(String[] args){
        int a = 3;//Definir uma variável;
        int b = ++a;//Operação de aumento
        int c = 3;
        int d = --c;//Operação de diminuição
        System.out.println("O valor após a operação de aumento é igual a"+b);
        System.out.println("O valor após a operação de diminuição é igual a"+d);
    }
}

O resultado da execução é:

O valor após a operação de aumento é igual a4
O valor após a operação de diminuição é igual a2

Análise:

  • int b = ++a; Divida o processo de operação em: a=a+1=4; b=a;4, o resultado final é b=4,a=4

  • int d = --c; Divida o processo de operação em: c=c-1=2; d=c;2, o resultado final é d=2,c=2

2、pré-fixa operação de aumento/diminuição (++a,--a): Primeiro execute a operação de aumento ou diminuição, então execute a operação de expressão.

3、pós-fixa operação de aumento/diminuição (a++,a--): Primeiro execute a operação de expressão, então execute a operação de aumento ou diminuição Exemplo:

public class selfAddMinus{
    public static void main(String[] args){
        int a = 5;//Definir uma variável;
        int b = 5;
        int x = 2*++a;
        int y = 2*b++;
        System.out.println("Operação pré-fixa do operador de aumento, após a operação a="+a+",x="+x);
        System.out.println("Operação pós-fixa do operador de aumento, após a operação b="+b+",y="+y);
    }
}

O resultado da execução é:

Operação pré-fixa do operador de aumento, após a operação a=6,x=12Operação pós-fixa do operador de aumento, após a operação b=6,y=10

Operadores de relação

A tabela a seguir mostra os operadores de relação suportados pelo Java

O valor da variável inteira A no exemplo da tabela é10,o valor da variável B é20:

Operadores    Descrição    Exemplo
    ==Verifique se os valores dos operadores são iguais, se forem, a condição é verdadeira.(A == B) é falso.
    !=Verifique se os valores dos operadores são iguais, se não forem, a condição é verdadeira. (A != B) é verdadeiro.
    > Verifique se o valor do operando esquerdo é maior que o valor do operando direito, se for, a condição é verdadeira.(A > B) é falso.
    <  Verifique se o valor do operando esquerdo é menor que o valor do operando direito, se for, a condição é verdadeira.(A < B) é verdadeiro.
    >=Verifique se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se for, a condição é verdadeira.(A >= B) é falso.
    <=Verifique se o valor do operando esquerdo é menor ou igual ao valor do operando direito, se for, a condição é verdadeira.(A <= B) é verdadeiro.

Exemplo

Este exemplo simples de programa demonstra os operadores de relação. Copie e cole o seguinte programa Java e salve como arquivo Test.java, em seguida, compile e execute o programa:

Código do arquivo Test.java:

public class Test {
 
  public static void main(String[] args) {
     int a = 10;
     int b = 20;
     System.out.println("a == b = ") + (a == b) ;
     System.out.println("a != b = ") + (a != b) ;
     System.out.println("a > b = ") + (a > b) ;
     System.out.println("a < b = ") + (a < b) ;
     System.out.println("b >= a = ") + (b >= a) ;
     System.out.println("b <= a = ") + (b <= a) ;
  }
}

O resultado da compilação e execução dos exemplos acima é o seguinte:

a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

Operadores de bit

Java define os operadores de bit, aplicáveis aos tipos inteiros (int), longos (long), curtos (short), caracteres (char) e bytes (byte) entre outros.

Os operadores de bit operam em todos os bits e operam bit a bit. Supondo que a = 60, b = 13;Seu formato binário será o seguinte:

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 as operações básicas dos operadores de bit, supondo que o valor da variável inteira A seja 60 e o valor da variável B é 13:

OperadorDescriçãoExemplo
se os bits correspondentes forem1então o resultado é1caso contrário, é 0(A&B), se torna12ou seja 0000 1100
|se os bits correspondentes forem todos 0, o resultado é 0, caso contrário, é 1(A | B) se torna61ou seja 0011 1101
^se os valores correspondentes dos bits forem iguais, o resultado é 0, caso contrário, é1(A ^ B) se torna49ou seja 0011 0001
~Operador de negação bit a bit inverte cada bit do operando, ou seja, 0 torna-se1,1torna-se 0.(~A) se torna-61ou seja1100 0011
<< Operador de deslocamento à esquerda. O operando à esquerda é deslocado para a esquerda bit a bit pelo número de posições especificado pelo operando à direita.A << 2Obter240, ou seja 1111 0000
>> Operador de deslocamento à direita. O operando à esquerda é deslocado para a direita bit a bit pelo número de posições especificado pelo operando à direita.A >> 2Obter15ou seja 1111
>>> Operador de deslocamento à direita com preenchimento zero. O valor do operando à esquerda é deslocado para a direita pelo número de posições especificado pelo operando à direita, e os espaços vazios resultantes são preenchidos com zeros.A>>>2Obter15ou seja, 0000 1111

Exemplo

Este exemplo simples de programa demonstra os operadores de bit. Copie e cole o seguinte programa Java e salve como arquivo Test.java, em seguida, compile e execute o programa:

public class Test {
  public static void main(String[] args) {
     int a = 60; /* 60 = 0011 1100 */ 
     int b = 13; /* 13 = 0000 1101 */
     int c = 0;
     c = a & b;       /* 12 = 0000 1100 */
     System.out.println("a & b = \ + c );
 
     c = a | b;       /* 61 = 0011 1101 */
     System.out.println("a | b = \ + c );
 
     c = a ^ b;       /* 49 = 0011 0001 */
     System.out.println("a ^ b = \ + c );
 
     c = ~a;          /*-61 = 1100 0011 */
     System.out.println("~a = \ + c );
 
     c = a << 2;     /* 240 = 1111 0000 */
     System.out.println("a << 2 = \ + c );
 
     c = a >> 2;     /* 15 = 1111 */
     System.out.println("a >> 2  = \ + c );
  
     c = a >>> 2;     /* 15 = 0000 1111 */
     System.out.println("a >>> 2 = \ + c );
  }
}

O resultado da compilação e execução dos exemplos acima é o seguinte:

a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2  = 15
a >>> 2 = 15

Operadores lógicos

A tabela a seguir lista as operações básicas dos operadores lógicos, supondo que as variáveis booleanas A sejam true e B sejam false

OperadorDescriçãoExemplo
&&Chamado de operador lógico e. A condição é true apenas quando ambos os operandos são true.(A && B) é falso.
| |Chamado de operador lógico ou. Se qualquer um dos dois operandos for true, a condição é true.(A || | B) é verdadeiro.
Chamado de operador lógico não. Usado para inverter o estado lógico do operando. Se a condição for true, o operador lógico não obterá false.!(A && B) é verdadeiro.

Exemplo

O seguinte exemplo de programa simples demonstra os operadores lógicos. Copie e cole o seguinte programa Java e salve como arquivo Test.java, em seguida, compile e execute o programa:

public class Test {
  public static void main(String[] args) {
     boolean a = true;
     boolean b = false;
     System.out.println("a && b = ") + (a&&b));
     System.out.println("a || b = ") + (a||b) );
     System.out.println("!(a && b) = ") + !(a && b));
  }
}

O resultado da compilação e execução dos exemplos acima é o seguinte:

a && b = false
a || b = true
!(a && b) = true

Operadores lógicos de curto-circuito

Quando usado com operadores lógicos, o resultado é true apenas quando ambos os operandos são true, mas quando o primeiro operando é false, o resultado é necessariamente false, e neste caso, não haverá mais julgamento do segundo operando.

public class LuoJi{}}
    public static void main(String[] args){
        int a = 5;//Definir uma variável;
        boolean b = (a<4) && (a++<10);
        System.out.println("O resultado do uso do operador lógico de curto-circuito é ",+b);
        System.out.println("O resultado de a é ",+a);
    }
}

O resultado da execução é:

o resultado do uso do operador lógico de curto-circuito é false
o resultado de a é5

Análise:Este programa usa o operador lógico de curto-circuito (&&), primeiro verifica a<4 o resultado é false, então o resultado de b deve ser false, então não é necessário executar a segunda operação a++<10 da condição, portanto, o valor de a é 5。

Operadores de atribuição

A seguir estão os operadores de atribuição suportados pela linguagem Java:

OperadorDescriçãoExemplo
=Operador de atribuição simples, que atribui o valor do operando direito ao operando esquerdoC = A + B atribuirá A + O valor obtido por B é atribuído a C
+ =Operador de atribuição de adição, que atribui a soma do operando esquerdo e direito ao operando esquerdoC + = A é equivalente a C = C + A
- =Operador de atribuição de subtração, que atribui a subtração do operando esquerdo e direito ao operando esquerdoC - = A é equivalente a C = C - A
* =Operador de atribuição de multiplicação, que atribui o produto do operando esquerdo e direito ao operando esquerdoC * = A é equivalente a C = C * A
/ =Operador de atribuição de divisão, que atribui a divisão do operando esquerdo e direito ao operando esquerdoC / = A, é equivalente a C = C quando C e A são do mesmo tipo / A
(%)=Operador de atribuição de módulo, que atribui o módulo do operando esquerdo e direito ao operando esquerdoC %= A é equivalente a C = C % A
<< =Operador de atribuição de deslocamento à esquerdaC << = 2é equivalente a C = C << 2
>> =Operador de atribuição de deslocamento à direitaC >> = 2é equivalente a C = C >> 2
&=Operador de atribuição de e bitwiseC&= 2é equivalente a C = C&2
^ =Operador de atribuição de xor bitwiseC ^ = 2é equivalente a C = C ^ 2
| =Operador de atribuição de ou bitwiseC | = 2é equivalente a C = C | 2

Exemplo

O exemplo simples a seguir demonstra o operador de atribuição. Copie e cole o seguinte programa Java e salve como arquivo AssignmentOperator.java, em seguida, compile e execute o programa:

class AssignmentOperator {
    public static void main(String[] args) {
        
        int número1, número2;
        
        //Será5é atribuído ao número1
        número1 = 5;
        System.out.println(number1);
                
        //A variável número2é atribuído ao número1
        número2 = number1;
        System.out.println(number2);
    }
}

O resultado da compilação e execução dos exemplos acima é o seguinte:

5
5

Operador de condição (?:)

O operador de condição também é conhecido como operador ternário. O operador tem3um operando e é necessário julgar o valor da expressão booleana. O operador é principalmente para determinar qual valor deve ser atribuído à variável.

variable x = (expression) ? value if true : value if false

Exemplo

public class Test {
   public static void main(String[] args){
      int a, b;
      a = 10;
      // Se a é igual a 1 estabelecido, o b é 20, caso contrário 30
      b = (a == 1?) 20: 30;
      System.out.println("O valor de b é:"); +  b);
 
      // Se a é igual a 10 estabelecido, o b é 20, caso contrário 30
      b = (a == 10?) 20: 30;
      System.out.println("O valor de b é:"); + b);
   }
}

O resultado da compilação e execução dos exemplos acima é o seguinte:

O valor de b é: 30
O valor de b é: 20

Operador instanceof

Este operador é usado para operar exemplos de objetos, verificar se o objeto é um tipo específico (tipo de classe ou tipo de interface).

O formato de uso do operador instanceof é o seguinte:

(Object reference variable) instanceof (class/interface type)

Se o objeto à esquerda do operador for uma classe ou interface (class/Se um objeto de interface) for true.

A seguir está um exemplo:

String name = "James";
boolean result = name instanceof String; // Devido ao tipo String de name, é retornado verdadeiro

Se o objeto comparado é compatível com o tipo à direita, o operador ainda retorna true.

Veja o exemplo a seguir:

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);
   }
}

O resultado da compilação e execução dos exemplos acima é o seguinte:

true

Prioridade dos operadores do Java

Quando vários operadores aparecem em uma expressão, qual a ordem de precedência? Isso envolve o problema do nível de prioridade dos operadores. Em uma expressão com múltiplos operadores, diferentes níveis de prioridade dos operadores podem levar a resultados finais muito diferentes.

Por exemplo,(1+3)+(3+2)*2,se a expressão for calculada com a precedência do sinal de adição, a resposta seria 18,se o operador de multiplicação tiver a precedência mais alta, a resposta seria 14。

Por exemplo, x = 7 + 3 * 2; aqui x recebe13,em vez de20,porque o operador de multiplicação tem uma precedência maior do que o operador de adição, então é calculado primeiro3 * 2Obter6,e então mais7。

Na tabela a seguir, os operadores de maior precedência estão no topo da tabela, e os de menor precedência no fundo.

CategoriaOperadorAssociatividade
Pós-fixo() [] . (operador de ponto)Da esquerda para a direita
Unárioexpr++  expr--Da esquerda para a direita
Unário++expr --expr + - ~ !Da direita para a esquerda
Multiplicativo * /%Da esquerda para a direita
Aditivo + -Da esquerda para a direita
Deslocamento >> >>>  << Da esquerda para a direita
Relacional >  >=  <  <= Da esquerda para a direita
Igual ==  !=Da esquerda para a direita
E bit a bitDa esquerda para a direita
OU bit a bit exclusivo^Da esquerda para a direita
OU bit a bit|Da esquerda para a direita
Lógica e&&Da esquerda para a direita
Lógica ou| |Da esquerda para a direita
Condicional?:Da direita para a esquerda
Atribuição= + = - = * = / =%= >> = << =&= ^ = | =Da direita para a esquerda
VírgulaDa esquerda para a direita