Операторы Java практически совпадают с операторами C++ и имеют такой же приоритет. Поскольку указатели отсутствуют, то отсутствуют операторы *, &, ->, delete для работы с ними. Операции над целыми числами: +, –, *, %, /, ++, –– и битовые операции &, |, ^, ~ аналогичны операциям C++. Деление на ноль целочисленного типа вызывает исключительную ситуацию, переполнение не контролируется.
Операции над числами с плавающей запятой практически те же, что и в С++, но по стандарту IEEE 754 введены понятие бесконечности +Infinity и –Infinity и значение NaN (Not a Number), которое может быть получено, например, при извлечении квадратного корня из отрицательного числа.
Арифметические операторы
+ сложение
+= сложение с присваиванием
- бинарное вычисление
-= вычитание с присваиванием
*=умножение с присваиванием
/ деление
% остаток от деления
++ инкремент
-- декремент
Битовые операторы
| или
|=или с присваиванием
& и
^ исключающее или
>> сдвиг вправо
<< сдвиг влево
>>> сдвиг вправо с появлением нулей
Операторы отношения
< меньше
<= меньше либо равно
== равно
!= не равно
Логические операторы
|| или
! унарное отрицание
&& и
К операторам относится также оператор определения принадлежности типу instanceof, оператор [ ] и тернарный оператор ?: (if-then-else). Логические операции выполняются над значениями типа boolean (true или false).
Массивы элементов базовых типов состоят из значений, проиндексированных начиная с нуля. Все массивы в языке Java являются динамическими, поэтому для создания массива требуется выделение памяти с помощью оператора new или инициализации. Значения элементов неинициализированных массивов, для которых выделена память, устанавливается в нуль. Имена массивов являются ссылками. Для объявления ссылки на массив можно записать пустые квадратные скобки после имени типа, например: int a[]. Аналогичный результат получится при записи int[] a.