Esenciales de Java: Guía Completa de Operadores Principales
Java proporciona un rico conjunto de operadores para manipular variables. Podemos dividir todos los operadores en:
- Operadores Aritméticos
- Operadores Relacionales
- Operadores Bitwise
- Operadores Lógicos
- Operadores de Asignación
- Operadores Misceláneos
Operadores Aritméticos
Usados en expresiones matemáticas como en álgebra. Asumiendo A=10, B=20:
| Operador | Descripción | Ejemplo |
|---|---|---|
| + (Adición) | Suma valores a ambos lados. | A + B = 30 |
| - (Sustracción) | Resta operando derecho del izquierdo. | A - B = -10 |
| * (Multiplicación) | Multiplica valores a ambos lados. | A * B = 200 |
| / (División) | Divide izquierdo por derecho. | B / A = 2 |
| % (Módulo) | Divide y devuelve resto. | B % A = 0 |
| ++ (Incremento) | Aumenta valor del operando en 1. | B++ = 21 |
| -- (Decremento) | Disminuye valor del operando en 1. | B-- = 19 |
Operadores Relacionales
Asumiendo A=10, B=20:
| Operador | Descripción | Ejemplo |
|---|---|---|
| == (igual a) | Comprueba si dos operandos son iguales. | (A == B) es falso. |
| != (distinto a) | Comprueba si dos operandos no son iguales. | (A != B) es verdadero. |
| > (mayor que) | Comprueba si izquierdo > derecho. | (A > B) es falso. |
| < (menor que) | Comprueba si izquierdo < derecho. | (A < B) es verdadero. |
| >= (mayor o igual) | Comprueba si izquierdo >= derecho. | (A >= B) es falso. |
| <= (menor o igual) | Comprueba si izquierdo <= derecho. | (A <= B) es verdadero. |
Operadores Bitwise
Aplicables a tipos enteros: long, int, short, char, byte. Trabajan bit a bit. Asumiendo a=60 (0011 1100), b=13 (0000 1101):
a&b = 0000 1100 (12) a|b = 0011 1101 (61) a^b = 0011 0001 (49) ~a = 1100 0011 (-61 en complemento a 2)
| Operador | Descripción | Ejemplo |
|---|---|---|
| & (bitwise AND) | Copia bit si existe en ambos operandos. | (A & B) = 12 (0000 1100) |
| | (bitwise OR) | Copia bit si existe en cualquiera. | (A | B) = 61 (0011 1101) |
| ^ (bitwise XOR) | Copia bit si está en uno pero no en ambos. | (A ^ B) = 49 (0011 0001) |
| ~ (bitwise complemento) | Operador unario, invierte bits. | (~A) = -61 (1100 0011 en complemento a 2) |
| << (desplazamiento izquierda) | Mueve bits del operando izquierdo a la izquierda según operando derecho. | A << 2 = 240 (1111 0000) |
| >> (desplazamiento derecha) | Mueve bits del operando izquierdo a la derecha según operando derecho. | A >> 2 = 15 (1111) |
| >>> (desplazamiento derecha con relleno cero) | Desplaza derecha rellenando con ceros. | A >>> 2 = 15 (0000 1111) |
Operadores Lógicos
Asumiendo A=true, B=false:
| Operador | Descripción | Ejemplo |
|---|---|---|
| && (AND lógico) | Verdadero si ambos operandos no-cero. | (A && B) es falso |
| || (OR lógico) | Verdadero si cualquiera no-cero. | (A || B) es verdadero |
| ! (NOT lógico) | Invierte estado lógico del operando. | !(A && B) es verdadero |
Operadores de Asignación
| Operador | Descripción | Ejemplo |
|---|---|---|
| = | Asignación simple. Asigna valor derecho a izquierdo. | C = A + B asigna valor de A+B a C |
| += | Suma Y asigna. Suma derecho a izquierdo y asigna a izquierdo. | C += A equivale a C = C + A |
| -= | Resta Y asigna. Resta derecho de izquierdo y asigna a izquierdo. | C -= A equivale a C = C - A |
| *= | Multiplica Y asigna. Multiplica derecho por izquierdo y asigna a izquierdo. | C *= A equivale a C = C * A |
| /= | Divide Y asigna. Divide izquierdo por derecho y asigna a izquierdo. | C /= A equivale a C = C / A |
| %= | Módulo Y asigna. Toma módulo de dos operandos y asigna a izquierdo. | C %= A equivale a C = C % A |
| <<= | Desplazamiento izquierda Y asigna. | C <<= 2 igual a C = C << 2 |
| >>= | Desplazamiento derecha Y asigna. | C >>= 2 igual a C = C >> 2 |
| &= | Bitwise AND Y asigna. | C &= 2 igual a C = C & 2 |
| ^= | XOR bitwise Y asigna. | C ^= 2 igual a C = C ^ 2 |
| |= | OR bitwise inclusivo Y asigna. | C |= 2 igual a C = C | 2 |
Operadores Misceláneos
Operador Condicional ( ? : )
También llamado operador ternario. Tres operandos, evalúa expresiones booleanas. Decide qué valor asignar a la variable.
variable x = (expresión) ? valor si verdadero : valor si falso
Ejemplo
Demo en Vivopublic class Prueba {
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);
}
}
Resultado:
Valor de b: 30 Valor de b: 20
Operador instanceof
Solo para variables de referencia de objetos. Comprueba si el objeto es de un tipo particular (clase o interfaz).
(Variable referencia objeto) instanceof (tipo clase/interfaz)
Si el objeto referido pasa la comprobación IS-A para el tipo a la derecha, resultado true.
Ejemplo
Demo en Vivopublic class Prueba {
public static void main(String args[]) {
String nombre = "James";
boolean resultado = nombre instanceof String;
System.out.println(resultado);
}
}
Resultado: true
También devuelve true si el objeto es compatible con el tipo de la derecha.
Ejemplo
Demo en Vivoclass Vehiculo {}
public class Coche extends Vehiculo {
public static void main(String args[]) {
Vehiculo a = new Coche();
boolean resultado = a instanceof Coche;
System.out.println(resultado);
}
}
Resultado: true
Precedencia de Operadores en Java
La precedencia determina el agrupamiento de términos en una expresión. Operadores con mayor precedencia se evalúan primero. Ejemplo: x = 7 + 3 * 2; x = 13, no 20, porque * tiene mayor precedencia que +.
| Categoría | Operador | Asociatividad |
|---|---|---|
| Postfijo | expresion++ expresion-- | Izquierda a derecha |
| Unario | ++expresion --expresion +expresion -expresion ~ ! | Derecha a izquierda |
| Multiplicativo | * / % | Izquierda a derecha |
| Aditivo | + - | Izquierda a derecha |
| Desplazamiento | << >> >>> | Izquierda a derecha |
| Relacional | < > <= >= instanceof | Izquierda a derecha |
| Igualdad | == != | Izquierda a derecha |
| Bitwise AND | & | Izquierda a derecha |
| Bitwise XOR | ^ | Izquierda a derecha |
| Bitwise OR | | | Izquierda a derecha |
| Lógico AND | && | Izquierda a derecha |
| Lógico OR | || | Izquierda a derecha |
| Condicional | ?: | Derecha a izquierda |
| Asignación | = += -= *= /= %= ^= |= <<= >>= >>>= | Derecha a izquierda |
¿Qué Sigue?
El próximo capítulo explicará control de bucles en Java. Describirá varios tipos de bucles y cómo usarlos en desarrollo de programas Java y para qué propósitos.
Java
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
- Dominar Entrada y Salida en Java: Imprimir, Leer y Formatear Datos
- Comentarios en Java: Tipos, Uso y Mejores Prácticas
- Dominar el Bucle for Mejorado en Java: Sintaxis, Ejemplos y Mejores Prácticas
- Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
- Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
- Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
- Aserciones en Java: Guía práctica para detectar bugs y asegurar fiabilidad del código
- Entendiendo Java Vector: Uso, Características y Comparación con ArrayList