Prioridad

Las operaciones en Java se realizan en el mismo orden como se operan en las matemáticas normales, solo habría que aclarar que no están incorporadas las operaciones con exponentes y radicales (estas operaciones se realizan utilizando métodos, generalmente en la clase Math, y por el uso de paréntesis se operan con la misma prioridad). Adicionalmente, las operaciones con la misma prioridad se realizan de izquierda a derecha y agrupándolas de dos en dos operandos.

Unarios - Negativo
++ Incremento prefijo
-- Decremento prefijo
Paréntesis ( ) Permite agrupar
Llamada a método que regresa un valor (función)
Multiplicación y división * Multiplicación
/ División
% Módulo o residuo
Suma y resta + Suma
- Resta
Incremento / decremento posfijo ++ Incremento posfijo
-- Decremento posfijo
Operadores de bits (sólo enteros) & and
| or
^ xor
~ not
>> Corrimiento a la derecha
<<< /td> Corrimiento a la izquierda
Asignación += -= Acumuladores asigna realiza la operación indicada sobre sí mismo
*= /=
%= &=
|= ^=
= Asignación (←)

Asignación

Asignación

En algoritmos y psudocódigos se utiliza el símbolo ← para indicar la asignación, es decir, se calcula el valor de la expresión que se encuentra a la derecha del símbolo y se asigna a la variable del lado izquierdo. En Java, el operador de asignación es el igual =.

Asignación

Del lado izquierdo se tiene un valor y del lado derecho una expresión; que puede ser una constante, una variable una referencia a un objeto o una operación que regrese un resultado.

Al final, las tres variables tendrán el valor de cero.

Acumuladores

En ciertas operaciones, cuando se realiza una operación donde la variable del lado izquierdo se incluye del lado derecho es posible utilizar un operador de «acumulación»:

Ejemplos:

x = x + 3; // recupera el valor de x súmale 3 y asígnalo a x

es equivalente a:

x += 3; // a x agrégale 3

saldo = saldo - 49; // recupera el valor de saldo réstale 49 y asígnalo a // saldo

es equivalente a:

saldo -= 49; // a saldo réstale 49

texto = "el vendedor del mes fue: ";

texto += "Juan"; // a texto se le concatena "Juan" y se le asigna a // texto

Contadores

Cuando el proceso de acumulación es de agregar o restar 1, se utiliza el operador de incremento (++) o decremento (--). Observa estas equivalencias:

Asignación Acumulación Incremento
i = i + 1; i += 1; i++;

Parece una trivialidad, pero en términos de programación es más eficiente el incremento (o decremento). Observa como se leen los ejemplos anteriores:

  • Asignación: recupera el valor de i y súmale 1, después asígnale 1.
  • Acumulación: ubica el valor de i y agrégale 1 unidad.
  • Incremento: incrementa (en uno) el valor de i.
Asignación Acumulación Incremento
i = i - 1; i -= 1; i--;

Los operadores de incremento/decremento son prefijos y posfijos y pueden colocarse en medio de expresiones complejas. Observa la tabla de prioridades y verás que cuando lo colocas prefijo se opera como mayor prioridad que cuando lo haces de manera posfija. Se recomienda su uso de forma individual y no en expresiones complejas, como se vió en los ejemplos anteriores.

Autoconversión de tipos

  • Enteros se convierten de manera automática a los tipos que tienen más bits para representarlos, pero no viceversa:
    byte → short → int → double
  • Los enteros se convierten a punto decimal, pero no viceversa:
    enteros → float → double
  • Cualquier tipo de dato se puede concatenar (agregar a una cadena de caracteres) y se realiza una conversión automática a String.