English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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
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ção | A + B igual a 30 |
- | subtração - o operando à esquerda subtraído pelo operando à direita | A - B igual a -10 |
* | multiplicação - os valores à esquerda e à direita do operador de multiplicação | A * B igual a200 |
/ | divisão - o operando à esquerda dividido pelo operando à direita | B / A igual a2 |
% | obter resto - o resto da divisão do operando à esquerda pelo operando à direita | B % A igual a 0 |
++ | incremento: o valor do operando aumenta1 | B++ ou ++B igual a 21(diferenças detalhadas a seguir) |
-- | decremento: o valor do operando diminui1 | B-- ou --B igual a 19(diferenças detalhadas a seguir) |
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
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
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. |
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
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:
Operador | Descrição | Exemplo |
---|---|---|
& | 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 |
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
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
Operador | Descrição | Exemplo |
---|---|---|
&& | 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. |
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
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。
A seguir estão os operadores de atribuição suportados pela linguagem Java:
Operador | Descrição | Exemplo |
---|---|---|
= | Operador de atribuição simples, que atribui o valor do operando direito ao operando esquerdo | C = 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 esquerdo | C + = 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 esquerdo | C - = A é equivalente a C = C - A |
* = | Operador de atribuição de multiplicação, que atribui o produto do operando esquerdo e direito ao operando esquerdo | C * = 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 esquerdo | C / = 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 esquerdo | C %= A é equivalente a C = C % A |
<< = | Operador de atribuição de deslocamento à esquerda | C << = 2é equivalente a C = C << 2 |
>> = | Operador de atribuição de deslocamento à direita | C >> = 2é equivalente a C = C >> 2 |
&= | Operador de atribuição de e bitwise | C&= 2é equivalente a C = C&2 |
^ = | Operador de atribuição de xor bitwise | C ^ = 2é equivalente a C = C ^ 2 |
| = | Operador de atribuição de ou bitwise | C | = 2é equivalente a C = C | 2 |
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
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
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
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
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.
Categoria | Operador | Associatividade |
---|---|---|
Pós-fixo | () [] . (operador de ponto) | Da esquerda para a direita |
Unário | expr++ 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 bit | & | Da 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írgula | , | Da esquerda para a direita |