Operadores de Java
Uno de los propósitos más básicos de una computadora es realizar operaciones matemáticas. Como lenguaje de computadora, Java también proporciona un rico conjunto de operadores para manipular variables. Podemos dividir los operadores en los siguientes grupos:
- Operadores aritméticos
- Operadores relacionales
- Operadores de bits
- Operadores lógicos
- Operadores de asignación
- Otros operadores
Operadores aritméticos
Los operadores aritméticos se usan en expresiones matemáticas, y su función es la misma que en matemáticas. La siguiente tabla enumera todos los operadores aritméticos.
En los ejemplos de la tabla se supone que la variable entera A vale 10 y la variable B vale 20:
| Operador | Descripción | Ejemplo |
|---|---|---|
| + | Suma - suma los valores a ambos lados del operador | A + B es igual a 30 |
| - | Resta - resta el operando derecho del operando izquierdo | A - B es igual a -10 |
| * | Multiplicación - multiplica los valores a ambos lados del operador | A * B es igual a 200 |
| / | División - divide el operando izquierdo por el operando derecho | B / A es igual a 2 |
| % | Módulo - el resto de dividir el operando izquierdo entre el operando derecho | B % A es igual a 0 |
| ++ | Incremento: aumenta el valor del operando en 1 | B++ o ++B es igual a 21 (la diferencia se explica más adelante) |
| -- | Decremento: disminuye el valor del operando en 1 | B-- o --B es igual a 19 (la diferencia se explica más adelante) |
Ejemplo
El siguiente programa de ejemplo sencillo demuestra los operadores aritméticos. Copia y pega el siguiente programa Java y guárdalo como archivo Test.java, luego compila y ejecuta este programa:
Ejemplo
Ejecutar ejemplo »
El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:
a + b = 30 a - b = -10 a * b = 200 b / a = 2 b % a = 0 c % a = 5 a++ = 10 a-- = 11 d++ = 25 ++d = 27
Operadores de incremento y decremento
1. Operadores de incremento (++) y decremento (--)Son un tipo especial de operadores aritméticos. Mientras que los operadores aritméticos necesitan dos operandos para realizar la operación, los operadores de incremento y decremento usan un solo operando.
Ejemplo
El resultado de la ejecución es:
进行自增运算后的值等于4 进行自减运算后的值等于2
Análisis:
int b = ++a; el proceso de la operación es: a=a+1=4; b=a=4, el resultado final es b=4, a=4
int d = --c; el proceso de la operación es: c=c-1=2; d=c=2, el resultado final es d=2, c=2
2. Incremento/decremento prefijo (++a, --a):Primero se realiza el incremento o decremento, y luego se evalúa la expresión.
3. Incremento/decremento sufijo (a++, a--):Primero se evalúa la expresión, y luego se realiza el incremento o decremento. Ejemplo:
Ejemplo
El resultado de la ejecución es:
自增运算符前缀运算后a=6,x=12 自增运算符后缀运算后b=6,y=10
Operadores relacionales
La siguiente tabla enumera los operadores relacionales que admite Java
En la tabla, la variable entera A vale 10 y la variable B vale 20:
| Operador | Descripción | Ejemplo |
|---|---|---|
| == | Comprueba si los valores de dos operandos son iguales; si son iguales, la condición es verdadera. | (A == B) es falso. |
| != | Comprueba si los valores de dos operandos son iguales; si no son iguales, la condición es verdadera. | (A != B) es verdadero. |
| > | Comprueba 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. |
| < | Comprueba 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. |
| >= | Comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho; si es así, la condición es verdadera. | (A >= B) es falso. |
| <= | Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho; si es así, la condición es verdadera. | (A <= B) es verdadero. |
Ejemplo
El siguiente programa de ejemplo sencillo demuestra los operadores relacionales. Copia y pega el siguiente programa Java y guárdalo como archivo Test.java, luego compila y ejecuta este programa:
Código del archivo Test.java:
El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:
a == b = false a != b = true a > b = false a < b = true b >= a = true b <= a = false
Operadores de bits
Java define operadores de bits, que se aplican a tipos como entero (int), entero largo (long), entero corto (short), carácter (char) y byte (byte).
Los operadores de bits actúan sobre todos los bits y realizan operaciones bit a bit. Supongamos que a = 60 y b = 13; sus representaciones en formato binario son las siguientes:
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, suponiendo que la variable entera A vale 60 y la variable B vale 13:
| Operador | Descripción | Ejemplo |
|---|---|---|
| & | Si los bits correspondientes son ambos 1, el resultado es 1; de lo contrario, es 0. | (A & B) da 12, es decir, 0000 1100 |
| | | Si los bits correspondientes son ambos 0, el resultado es 0; de lo contrario, es 1. | (A | B) da 61, es decir, 0011 1101 |
| ^ | Si los valores de los bits correspondientes son iguales, el resultado es 0; de lo contrario, es 1. | (A ^ B) da 49, es decir, 0011 0001 |
| 〜 | El operador de complemento bit a bit invierte cada bit del operando, es decir, 0 se convierte en 1 y 1 se convierte en 0. | (~A) da -61, es decir, 1100 0011 |
| << | Operador de desplazamiento a la izquierda. Desplaza el operando izquierdo a la izquierda la cantidad de posiciones especificada por el operando derecho. | A << 2 da 240, es decir, 1111 0000 |
| >> | Operador de desplazamiento a la derecha. Desplaza el operando izquierdo a la derecha la cantidad de posiciones especificada por el operando derecho. | A >> 2 da 15, es decir, 1111 |
| >>> | Operador de desplazamiento a la derecha con relleno de ceros. El valor del operando izquierdo se desplaza a la derecha la cantidad de posiciones especificada por el operando derecho, y los huecos que se generan se rellenan con ceros. | A >>> 2 da 15, es decir, 0000 1111 |
Ejemplo
El siguiente programa de ejemplo sencillo demuestra los operadores de bits. Copia y pega el siguiente programa Java y guárdalo como archivo Test.java, luego compila y ejecuta este programa:
Código del archivo Test.java:
El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:
a & b = 12 a | b = 61 a ^ b = 49 ~a = -61 a << 2 = 240 a >> 2 = 15 a >>> 2 = 15
Operadores lógicos
La siguiente tabla enumera las operaciones básicas de los operadores lógicos, suponiendo que la variable booleana A es verdadera y la variable B es falsa.
| Operador | Descripción | Ejemplo |
|---|---|---|
| && | Se llama operador lógico Y (AND). La condición es verdadera si y solo si ambos operandos son verdaderos. | (A && B) es falso. |
| | | | Se llama operador lógico O (OR). Si cualquiera de los dos operandos es verdadero, la condición es verdadera. | (A || B) es verdadero. |
| ! | Se llama operador lógico NO (NOT). Se utiliza para invertir el estado lógico del operando. Si la condición es true, el operador NO lógico devolverá false. | !(A && B) es verdadero. |
Ejemplo
El siguiente programa de ejemplo sencillo demuestra los operadores lógicos. Copia y pega el siguiente programa Java y guárdalo como archivo Test.java, luego compila y ejecuta este programa:
Ejemplo
El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:
a && b = false a || b = true !(a && b) = true
Operadores lógicos de cortocircuito
Cuando se usa el operador lógico AND, el resultado solo es true si ambos operandos son true, pero cuando el primer operando es false, el resultado será necesariamente false, por lo que ya no se evalúa el segundo operando.
Ejemplo
El resultado de la ejecución es:
使用短路逻辑运算符的结果为false a的结果为5
Análisis:Este programa utiliza el operador lógico de cortocircuito (&&). Primero, el resultado de a<4 es false, entonces el resultado de b debe ser false, por lo que no se ejecuta la evaluación de la segunda operación a++<10, por lo tanto el valor de a es 5.
Operadores de asignación
A continuación se muestran los operadores de asignación compatibles con Java:
| Operador | Descripción | Ejemplo |
|---|---|---|
| = | Operador de asignación simple, asigna el valor del operando derecho al operando izquierdo | C = A + B asignará el valor obtenido de A + B a C |
| + = | Operador de suma y asignación, suma el operando izquierdo y el derecho y asigna el resultado al operando izquierdo | C + = A es equivalente a C = C + A |
| - = | Operador de resta y asignación, resta el operando derecho del izquierdo y asigna el resultado al operando izquierdo | C - = A es equivalente a C = C - A |
| * = | Operador de multiplicación y asignación, multiplica el operando izquierdo y el derecho y asigna el resultado al operando izquierdo | C * = A es equivalente a C = C * A |
| / = | Operador de división y asignación, divide el operando izquierdo entre el derecho y asigna el resultado al operando izquierdo | C / = A, cuando C y A son del mismo tipo, es equivalente a C = C / A |
| (%)= | Operador de módulo y asignación, calcula el módulo del operando izquierdo y el derecho y asigna el resultado al operando izquierdo | C%= A es equivalente a C = C%A |
| << = | Operador de asignación de desplazamiento a la izquierda | C << = 2 es equivalente a C = C << 2 |
| >> = | Operador de asignación de desplazamiento a la derecha | C >> = 2 es equivalente a C = C >> 2 |
| &= | Operador de asignación AND bit a bit | C&= 2 es equivalente a C = C&2 |
| ^ = | Operador de asignación XOR bit a bit | C ^ = 2 es equivalente a C = C ^ 2 |
| | = | Operador de asignación OR bit a bit | C | = 2 es equivalente a C = C | 2 |
Ejemplo
El siguiente programa de ejemplo simple demuestra los operadores de asignación. Copie y pegue el siguiente programa Java, guárdelo como archivo Test.java, luego compílelo y ejecútelo:
Código del archivo Test.java:
El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:
c = a + b = 30 c += a = 40 c -= a = 30 c *= a = 300 c /= a = 1 c %= a = 5 c <<= 2 = 20 c >>= 2 = 5 c >>= 2 = 1 c &= a = 0 c ^= a = 10 c |= a = 10
Operador condicional (?:)
El operador condicional también se conoce como operador ternario. Este operador tiene 3 operandos y necesita evaluar el valor de una expresión booleana. Su función principal es decidir qué valor se debe asignar a la variable.
variable x = (expression) ? value if true : value if false
Ejemplo
Código del archivo Test.java:
El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:
Value of b is : 30 Value of b is : 20
Operador instanceof
Este operador se utiliza para operar sobre instancias de objetos, verificando si el objeto es de un tipo específico (tipo de clase o tipo de interfaz).
El formato de uso del operador instanceof es el siguiente:
( Object reference variable ) instanceof (class/interface type)
Si el objeto al que apunta la variable a la izquierda del operador es un objeto de la clase o interfaz (class/interface) a la derecha del operador, entonces el resultado es true.
A continuación se muestra un ejemplo:
String name = "James"; boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
Si el objeto comparado es compatible con el tipo de la derecha, el operador aún devuelve true.
Vea el siguiente ejemplo:
El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:
true
Precedencia de operadores en Java
Cuando varios operadores aparecen en una expresión, ¿cuál va primero y cuál después? Esto involucra el problema del nivel de prioridad de los operadores. En una expresión con múltiples operadores, una precedencia de operadores diferente puede causar que el resultado final varíe enormemente.
Por ejemplo, (1+3) + (3+2)*2, si en esta expresión la suma tiene la mayor prioridad, el resultado es 18; si la multiplicación tiene la mayor prioridad, el resultado es 14.
Otro ejemplo, x = 7 + 3 * 2; aquí x obtiene 13, no 20, porque el operador de multiplicación tiene mayor prioridad que el de suma, por lo que primero se calcula 3 * 2 obteniendo 6, y luego se suma 7.
En la siguiente tabla, los operadores con mayor prioridad están en la parte superior, y los de menor prioridad en la parte inferior.
| Categoría | Operador | Asociatividad |
|---|---|---|
| Sufijo | () [] . (operador de punto) | De izquierda a derecha |
| Unario | expr++ expr-- | De izquierda a derecha |
| Unario | ++expr --expr + - ~ ! | De derecha a izquierda |
| Multiplicativo | * /% | Izquierda a derecha |
| Aditivo | + - | Izquierda a derecha |
| Desplazamiento | >> >>> << | Izquierda a derecha |
| Relacional | > >= < <= | Izquierda a derecha |
| Igualdad | == != | Izquierda a derecha |
| AND bit a bit | & | Izquierda a derecha |
| XOR bit a bit | ^ | Izquierda a derecha |
| OR bit a bit | | | Izquierda a derecha |
| AND lógico | && | Izquierda a derecha |
| OR lógico | | | | Izquierda a derecha |
| Condicional | ?: | De derecha a izquierda |
| Asignación | = + = - = * = / =%= >> = << =&= ^ = | = | De derecha a izquierda |
| Coma | , | Izquierda a derecha |