Статьи

Полный курс по языку Java — от установки JDK до многопоточности и HTTP-запросов

Операторы

Страница 7 из 30 · 2026-10-25 · 3 мин чтения

Арифметические

public class Arithmetic {    public static void main(String[] args) {        int a = 17;        int b = 5;        System.out.println(a + b);        System.out.println(a - b);        System.out.println(a * b);        System.out.println(a / b);        System.out.println(a % b);        System.out.println(17.0 / 5);    }}

Вывод: 22, 12, 85, 3, 2, 3.4.

Деление двух целых — целочисленное, остаток отбрасывается. Чтобы получить дробный результат, хотя бы один операнд должен быть дробным.

Инкремент и декремент

public class IncDec {    public static void main(String[] args) {        int x = 5;        int a = x++;        int b = ++x;        System.out.println(a + " " + b + " " + x);    }}

Вывод: 5 7 7. Постфиксная форма x++ возвращает старое значение, префиксная ++x — новое.

Составное присваивание

public class Compound {    public static void main(String[] args) {        int x = 10;        x += 5;        x -= 3;        x *= 2;        x /= 4;        x %= 4;        System.out.println(x);    }}

Сравнение

==, !=, <, >, <=, >= возвращают boolean.

public class Comparison {    public static void main(String[] args) {        int a = 5;        int b = 10;        System.out.println(a < b);        System.out.println(a == b);        System.out.println(a != b);    }}

Для объектов, включая строки, == сравнивает ссылки. Содержимое сравнивается методом equals.

Логические операторы

ОператорЗначение
&&И, с ленивым вычислением
`\\
!НЕ
^исключающее ИЛИ
public class Logic {    public static void main(String[] args) {        int age = 20;        boolean hasTicket = true;        boolean canEnter = age >= 18 && hasTicket;        System.out.println(canEnter);        System.out.println(!canEnter);        String text = null;        boolean safe = text != null && text.length() > 0;        System.out.println(safe);    }}

В text != null && text.length() > 0 правая часть не вычисляется, если левая ложна, поэтому NullPointerException не возникает.

Тернарный оператор

public class Ternary {    public static void main(String[] args) {        int n = 7;        String parity = n % 2 == 0 ? "четное" : "нечетное";        System.out.println(parity);    }}

Форма: условие ? значение_если_истина : значение_если_ложь.

Побитовые операторы

public class Bitwise {    public static void main(String[] args) {        int a = 0b1100;        int b = 0b1010;        System.out.println(a & b);        System.out.println(a | b);        System.out.println(a ^ b);        System.out.println(~a);        System.out.println(a << 2);        System.out.println(a >> 1);        System.out.println(-16 >>> 28);    }}

Вывод: 8, 14, 6, -13, 48, 6, 15.

  • << сдвиг влево, умножение на степень двойки;
  • >> арифметический сдвиг вправо, сохраняет знак;
  • >>> логический сдвиг вправо, заполняет нулями.

Конкатенация строк

Оператор + склеивает строки, а число автоматически превращается в строку:

public class Concat {    public static void main(String[] args) {        System.out.println("Сумма: " + 1 + 2);        System.out.println("Сумма: " + (1 + 2));        System.out.println(1 + 2 + " сумма");    }}

Вывод:

Сумма: 12Сумма: 33 сумма

Выражения вычисляются слева направо.

Приоритет операторов

От высшего к низшему:

  1. постфиксные: x++, x--
  2. унарные: ++x, -x, !, ~
  3. *, /, %
  4. +, -
  5. сдвиги: <<, >>, >>>
  6. сравнения: <, >, <=, >=
  7. равенство: ==, !=
  8. &, затем ^, затем |
  9. &&, затем ||
  10. тернарный ?:
  11. присваивание =, += и другие

Если сомневаетесь в порядке, ставьте скобки.