El lenguaje de programación Java incorpora una serie de operadores que permiten realizar cálculos y escribir expresiones que realicen una serie de operaciones sobre los datos.

  • + (suma)
  • - (resta)
  • * (multiplicación)
  • / (división entera o con decimales según operandos)
  • % (resto de la división)

Todos estos operadores aritméticos deben utilizarse con dos operandos, situados delante y detrás de los operadores, pudiéndose encadenar las operaciones. Se pueden incluir espacios para aclarar más el código.

Los datos usados como operandos deben ser de alguno de los tipos de datos numéricos (byte, short, int, long, float o double). Ejemplos:
  • 4 + 3
  • 8 - 5 + 2
  • 6 * 2 / 3
  • 8.5 - 3 + 4.3

El resultado de la división tendrá decimales o no según el tipo de operandos que se utilice. Si los dos son enteros, el resultado no tendrá decimales, pero si al menos uno de los operandos es de tipo  numérico real (float o double) el resultado será de ese tipo. Ejemplos:
  • 8 / 2 resulta 4
  • 7 / 2 resulta 3
  • 7.0 / 2 resulta 3.5
  • 7 / 2.0 resulta 3.5
  • 7.4 / 2 resulta 3.7
  • 8 / 2.5 resulta 3.2
  • 8.5 / 2.5 resulta 3.4

Es posible modificar el tipo de dato de cualquier operando indicando delante el nuevo tipo de dato entre paréntesis. Así se hace una conversión de tipo:
  • (double)7 / 2 resulta 3.5
  • 7 / (float)2 resulta 3.5

El operador resto se debe utilizar con tipos de datos numéricos enteros. El resultado será el resto de la división entre los dos operandos. Ejemplos:
  • 7 % 2 resulta 1
  • 8 % 3 resulta 2

El resultado de cualquier operación aritmética será del tipo de dato más grande que se utilice en los operandos. Por ejemplo, si se hace una operación entre dos números enteros (int) el resultado será del mismo tipo, pero si se hace entre un int y un long es resultado es de tipo long. Ejemplos:
  • 2147483647 * 2 resulta un dato incorrecto, en concreto -2, porque se están multiplicando dos int y el resultado sobrepasa el límite de los enteros.
  • 2147483647L * 2 resulta 4294967294 porque el primer operando es de tipo long (se ha indicado L al final).

Al igual que en las expresiones matemáticas habituales, los operadores aritméticos y en general todos los operadores, tienen un orden de precedencia:
  1. Multiplicación (*), División (/) y Resto (%)
  2. Suma (+) y Resta (-)
Dentro del mismo orden de precedencia, las operaciones se realizarán en orden de izquierda a derecha. Si es necesario cambiar el orden de precedencia, se deben utilizar paréntesis de la forma habitual. Ejemplos:
  • 4 + 3 * 2 resulta 10 (4+6)
  • (4 + 3) * 2  resulta 14 (7*2)
  • 4 / 2 * 3 resulta 6

Utilizando la sentencia System.out.println(); se muestra, por salida estándar, el resultado de cualquier expresión aritmética o de cualquier otro tipo. Ejemplos:
  • System.out.println((4 + 3) * 2);
    Muestra 14
  • System.out.println("(4 + 3) * 2");
    Muestra (4 + 3) * 2 ya que lo considera una cadena de caracteres

Los caracteres pueden ser utilizados para realizar cálculos aritméticos. En caso de que aparezca algún carácter en una expresión aritmética, se toma el valor numérico que le corresponde a cada carácter en la tabla de codificación Unicode. Ejemplos:
  • 'A' + 1 resulta 66, ya que el carácter 'A' tiene el código 65.
  • (char)('A' + 1) resulta 'B' ya que se ha hecho una conversión de tipos del resultado, convirtiendo el valor 66 a su correspondiente carácter.