English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Una de las aplicaciones más básicas de la computadora es ejecutar operaciones matemáticas, y como lenguaje de computadora, Java también proporciona un conjunto rico de operadores para manipular variables. Podemos dividir los operadores en los siguientes grupos:
Operadores aritméticos
Operadores de relación
Operadores de bits
Operadores lógicos
Operadores de asignación
Otros operadores
Los operadores aritméticos se utilizan en expresiones matemáticas, y sirven igual que en matemáticas. La siguiente tabla enumera todos los operadores aritméticos.
Las ejemplos en la tabla asumen que el valor de la variable entera A es10, el valor de la variable B es20:
Operador | Descripción | Ejemplo |
---|---|---|
+ | Adición - Los valores a ambos lados del operador de adición | A + B es igual a 30 |
- | Sustracción - El operando izquierdo restado por el operando derecho | A - B es igual -10 |
* | Multiplicación - Los valores a ambos lados del operador de multiplicación | A * B es igual200 |
/ | División - El operando izquierdo dividido por el operando derecho | B / A es igual2 |
% | Obtener el residuo - El residuo de la división del operando izquierdo por el operando derecho | B % A es igual a 0 |
++ | Incremento: el valor del operando aumenta1 | B++ o ++B es igual a 21(区别详见下文) |
-- | Decremento: el valor del operando disminuye1 | B-- o --B es igual a 19(区别详见下文) |
El siguiente ejemplo simple de programa muestra los operadores aritméticos. Copie y pegue el siguiente programa Java y guárdelo como archivo ArithmeticOperator.java, luego compórtelo y ejecute este programa:
class OperadorAritmético { public static void main(String[] args) { double número1 = 12.5, number2 = 3.5, result; //Uso del operador de adición result = número1 + número2; System.out.println("número1 + número2 = \ + result); //Uso del operador de sustracción result = número1 - número2; System.out.println("número1 - número2 = \ + result); //Uso del operador de multiplicación result = número1 * número2; System.out.println("número1 * número2 = \ + result); //Uso del operador de división result = número1 / número2; System.out.println("número1 / número2 = \ + result); // Uso del operador de residuo result = número1 % número2; System.out.println("número1 % número2 = \ + result); } }
El resultado de la compilación y ejecución de los ejemplos anteriores es el siguiente:
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、Suma incremental++)Resta incremental--)OperadorEs un operador aritmético especial, que necesita dos operandos para realizar operaciones en los operadores aritméticos, mientras que los operadores de suma y resta son un operando.
public class selfAddMinus{ public static void main(String[] args){ int a = 3;//Definir una variable; int b = ++a;//Operación de suma incremental int c = 3; int d = --c;//Operación de resta incremental System.out.println("El valor después de la operación de suma incremental es igual a"+b); System.out.println("El valor después de la operación de resta incremental es igual a"+); } }
El resultado de la ejecución es:
El valor después de la operación de suma incremental es igual a4 El valor después de la operación de resta incremental es igual a2
Análisis:
int b = ++; Divida el proceso de operación en: a=a+1=4; b=a=4, el resultado final es b=4,a=4
int d = --; Divida el proceso de operación en: c=c-1=2; d=c=2, el resultado final es d=2,c=2
2、suma incremental prefix (++a,--a): Primero realice la suma o resta incremental, luego realice la operación de expresión.
3、suma incremental postfix (a++,a--) Primero realice la operación de expresión, luego realice la suma o resta incremental Ejemplo:
public class selfAddMinus{ public static void main(String[] args){ int a = 5;//Definir una variable; int b = 5; int x = 2*++a; int y = 2*b++; System.out.println("El operando de la suma incremental prefix se evalúa y luego a="+a+",x="+); System.out.println("El operando de la suma incremental postfix se evalúa y luego b="+b+",y="+); } }
El resultado de la ejecución es:
, el operando de la suma incremental prefix se evalúa y luego a=6, x=12, el operando de la suma incremental postfix se evalúa y luego b=6, y=10
La siguiente tabla muestra los operadores de relación soportados por Java
, el valor de la variable entera A en la tabla es10, el valor de la variable B es20:
Operadores | Descripción | Ejemplo |
---|---|---|
== | Verifique si los valores de los operandos son iguales, si lo son, la condición es verdadera. | (A == B) es falso. |
!= | Verifique si los valores de los operandos son iguales, si no lo son, la condición es verdadera. | (A != B) es verdadero. |
> | Verifique si el valor del operando izquierdo es mayor que el valor del operando derecho, si es así, la condición es verdadera. | (A > B) es falso. |
< | Verifique si el valor del operando izquierdo es menor que el valor del operando derecho, si es así, la condición es verdadera. | (A < B) es verdadero. |
>= | Verifique si el valor del operando izquierdo es mayor o igual al valor del operando derecho, si es así, la condición es verdadera. | (A >= B) es falso. |
<= | Verifique si el valor del operando izquierdo es menor o igual al valor del operando derecho, si es así, la condición es verdadera. | (A <= B) es verdadero. |
El siguiente ejemplo simple de programa muestra los operadores de relación. Copie y pegue el siguiente programa Java y guárdelo como archivo Test.java, luego compílelo y ejecute el programa:
Código del archivo 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) ; } }
El resultado de la compilación y ejecución de los ejemplos anteriores es el siguiente:
a == b = false a != b = true a > b = false a < b = true b >= a = true b <= a = false
Java define operadores de bits, aplicables a tipos enteros (int), long, short, char y byte, entre otros.
Los operadores de bits actúan en todos los bits y operan bit a bit. Supongamos que a = 60, b = 13;su representación en formato binario será como sigue:
A = 0011 1100 B = 0000 1101 ----------------- A&B = 0000 1100 A | B = 0011 1101 A ^ B = 0011 0001 ~A= 1100 0011
La siguiente tabla enumera las operaciones básicas de los operadores de bits, asumiendo que el valor de la variable entera A es 60 y el valor de la variable B es 13:
Operador | Descripción | Ejemplo |
---|---|---|
& | si los bits correspondientes son1entonces el resultado es1de lo contrario es 0 | (A&B), se convierte en12es 0000 1100 |
| | si los bits correspondientes son 0, el resultado es 0, de lo contrario es 1 | (A | B) se convierte en61es 0011 1101 |
^ | si los valores de los bits correspondientes son iguales, el resultado es 0, de lo contrario es1 | (A ^ B) se convierte en49es 0011 0001 |
~ | El operador de inversión bit a bit invierte cada bit del operando, es decir, 0 se convierte en1,1en 0. | (~A) se convierte en-61es1100 0011 |
<< | Operador de desplazamiento a la izquierda bit a bit. El operando izquierdo se desplaza a la izquierda en el número de posiciones especificado por el operando derecho. | A << 2Obtener240, es 1111 0000 |
>> | Operador de desplazamiento a la derecha bit a bit. El operando izquierdo se desplaza a la derecha bit a bit en el número de posiciones especificado por el operando derecho. | A >> 2Obtener15es 1111 |
>>> | Operador de desplazamiento a la derecha lógico. El valor del operando izquierdo se desplaza a la derecha en el número de posiciones especificado por el operando derecho, y los bits vacíos se rellenan con ceros. | A>>>2Obtener15es 0000 1111 |
Este ejemplo simple de programa muestra los operadores de bits. Copie y pegue el siguiente programa Java y guárdelo como archivo Test.java, luego compílelo y ejecute el 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 ); } }
El resultado de la compilación y ejecución de los ejemplos anteriores es el siguiente:
a & b = 12 a | b = 61 a ^ b = 49 ~a = -61 a << 2 = 240 a >> 2 = 15 a >>> 2 = 15
La siguiente tabla enumera las operaciones básicas de los operadores lógicos, asumiendo que la variable booleana A es verdadera y la variable B es falsa
Operador | Descripción | Ejemplo |
---|---|---|
&& | Se llama operador lógico de y. La condición es verdadera solo cuando ambos operandos son verdaderos. | (A && B) es falso. |
| | | Se llama operador lógico de o. Si cualquier operando de los dos es verdadero, la condición es verdadera. | (A || | B) es verdadero. |
! | Se llama operador lógico de no. Se utiliza para invertir el estado lógico del operando. Si la condición es verdadera, el operador lógico de no obtiene falso. | !(A && B) es verdadero. |
El siguiente ejemplo de programa simple muestra los operadores lógicos. Copie y pegue el siguiente programa Java y guárdelo como archivo Test.java, luego compílelo y ejecute el 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)); } }
El resultado de la compilación y ejecución de los ejemplos anteriores es el siguiente:
a && b = false a || b = true !(a && b) = true
Cuando se utiliza el operador lógico, el resultado es verdadero solo cuando ambos operandos son verdaderos, pero cuando se obtiene el primer operando como falso, el resultado es inevitablemente falso, en este caso ya no se juzga el segundo operando.
public class LuoJi{}} public static void main(String[] args){ int a = 5;//Definir una variable; boolean b = (a<4) && (a++<10); System.out.println("El resultado de usar el operador de cortocircuito es ",+b); System.out.println("El resultado de a es ",+a); } }
El resultado de la ejecución es:
el resultado de usar el operador de cortocircuito es false el resultado de a es5
Análisis:Este programa utiliza operadores lógicos de cortocircuito (&&), primero juzgar a<4 el resultado es false, entonces el resultado de b debe ser false, por lo que no se ejecuta la segunda operación a++<10 la condición, por lo que el valor de a es 5。
Los operadores de asignación soportados por el lenguaje Java son los siguientes:
Operador | Descripción | Ejemplo |
---|---|---|
= | Operador de asignación simple, que asigna el valor del operando derecho al operando izquierdo | C = A + B asignará A + El valor obtenido por B se asigna a C |
+ = | Operador de suma y asignación, que asigna el resultado de la suma de los operandos izquierdo y derecho al operandos izquierdo | C + = A equivalente a C = C + A |
- = | Operador de resta y asignación, que asigna el resultado de la resta de los operandos izquierdo y derecho al operandos izquierdo | C - = A equivalente a C = C - A |
* = | Operador de multiplicación y asignación, que asigna el resultado de la multiplicación de los operandos izquierdo y derecho al operandos izquierdo | C * = A equivalente a C = C * A |
/ = | Operador de división y asignación, que asigna el resultado de la división de los operandos izquierdo y derecho al operandos izquierdo | C / = A, equivalente a C = C cuando C y A son del mismo tipo / A |
(%)= | Operador de módulo y asignación, que asigna el módulo de los operandos izquierdo y derecho al operandos izquierdo | C %= A equivalente a C = C % A |
<< = | Operador de asignación de desplazamiento a la izquierda | C << = 2equivalente a C = C << 2 |
>> = | Operador de asignación de desplazamiento a la derecha | C >> = 2equivalente a C = C >> 2 |
&= | Operador de asignación de and lógico | C&= 2equivalente a C = C&2 |
^ = | Operador de asignación de xor lógico | C ^ = 2equivalente a C = C ^ 2 |
| = | Operador de asignación de or lógico | C | = 2equivalente a C = C | 2 |
El siguiente programa de ejemplo simple muestra el operador de asignación. Copie y pegue el siguiente programa Java y guárdelo como archivo AssignmentOperator.java, luego compílelo y ejecute el programa:
class AssignmentOperator { public static void main(String[] args) { int number1, number2; //Asignar5asignar a número1 número1 = 5; System.out.println(number1); //Asignar la variable número2se asigna el valor a número1 número2 = number1; System.out.println(number2); } }
El resultado de la compilación y ejecución de los ejemplos anteriores es el siguiente:
5 5
El operador condicional también se conoce como operador ternario. Este operador tiene3Un operando y necesita determinar el valor de la expresión booleana. El operador principal es decidir qué valor debe asignarse a la variable.
variable x = (expression) ? value if true : value if false
public class Test { public static void main(String[] args){ int a , b; a = 10; // Si a es igual a 1 se establece b a 20, de lo contrario es 30 b = (a == 1) ? 20 : 30; System.out.println( "El valor de b es: "} + b ); // Si a es igual a 10 se establece b a 20, de lo contrario es 30 b = (a == 10) ? 20 : 30; System.out.println( "El valor de b es: "} + b ); } }
El resultado de la compilación y ejecución de los ejemplos anteriores es el siguiente:
El valor de b es: 30 El valor de b es: 20
Este operador se utiliza para operar con ejemplos de objetos, para verificar si el objeto es un tipo específico (clase o interfaz de tipo).
El formato de uso del operador instanceof es el siguiente:
( Object reference variable ) instanceof (class/interface type)
Si el objeto al que se refiere la variable de la izquierda del operador es una clase o interfaz (class/Si un objeto de una interfaz) es verdadero.
A continuación, se muestra un ejemplo:
String name = "James"; boolean result = name instanceof String; // Dado que name es del tipo String, devuelve verdadero
Si el objeto comparado es compatible con el tipo de la derecha, este operador aún devuelve true.
Vea el siguiente ejemplo:
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); } }
El resultado de la compilación y ejecución de los ejemplos anteriores es el siguiente:
true
Cuando varios operadores aparecen en una expresión, ¿quién primero y quién después? Esto involucra el problema del nivel de prioridad de los operadores. En una expresión con múltiples operadores, la prioridad de los operadores diferentes puede causar que los resultados finales difieran mucho.
Por ejemplo,(1+3)+(3+2)*2, si se calcula la expresión según la prioridad del operador de adición, la respuesta sería 18, si se aplica la prioridad del operador de multiplicación, la respuesta sería 14。
Por ejemplo, x = 7 + 3 * 2; aquí x recibe13, en lugar de20, porque el operador de multiplicación tiene una prioridad más alta que el operador de adición, por lo que se calcula primero3 * 2Obtener6, luego más7。
Los operadores con la prioridad más alta en la tabla se encuentran en la parte superior de la tabla, y los de prioridad más baja en la parte inferior.
Categoría | Operador | Asociatividad |
---|---|---|
Postfijo | () [] . (operador de punto) | De izquierda a derecha |
Unario | expr++ expr-- | De izquierda a derecha |
Unario | ++expr --expr + - ~ ! | De derecha a izquierda |
Multiplicativo | * /% | De izquierda a derecha |
Aditivo | + - | De izquierda a derecha |
Desplazamiento | >> >>> << | De izquierda a derecha |
Relación | > >= < <= | De izquierda a derecha |
Igual | == != | De izquierda a derecha |
AND bit a bit | & | De izquierda a derecha |
XOR bit a bit | ^ | De izquierda a derecha |
O bit a bit | | | De izquierda a derecha |
Y lógico | && | De izquierda a derecha |
O lógico | | | | De izquierda a derecha |
Condicional | ?: | De derecha a izquierda |
Asignación | = + = - = * = / =%= >> = << =&= ^ = | = | De derecha a izquierda |
Punto y coma | , | De izquierda a derecha |