Java
  • Java
  • Основы языка
    • Типы данных
    • Литералы
    • Переменные и константы
    • Операторы
    • Управляющие последовательности
  • Модификаторы
    • Модификаторы доступа
    • Модификаторы используемые не для доступа
  • Ввод с клавиатуры
  • Особенности строк
  • Коллекции
    • ArrayList и LinkedList
    • Set и Map
  • Дата и время
  • Исключения
    • Встроенные исключения
  • Интерфейсы
    • Абстрактный класс vs. интерфейс
  • Оператор instanceof
Powered by GitBook
On this page
  • Арифметические операторы
  • Операторы сравнения
  • Побитовые операторы
  • Логические операторы
  • Операторы присваивания
  • Прочие операторы
  • Приоритет операторов в Java
Edit on GitHub
  1. Основы языка

Операторы

Арифметические операторы

Арифметические операторы — используются в математических выражениях таким же образом, как они используются в алгебре. Предположим, целая переменная A равна 10, а переменная B равна 20. В следующей таблице перечислены арифметические операторы в Java:

Оператор
Описание
Пример

+

Складывает значения по обе стороны от оператора

A + B даст 30

-

Вычитает правый операнд из левого операнда

A - B даст -10

*

Умножает значения по обе стороны от оператора

A * B даст 200

/

Оператор деления делит левый операнд на правый операнд

B / A даст 2

%

Делит левый операнд на правый операнд и возвращает остаток

B % A даст 0

++

Инкремент - увеличивает значение операнда на 1

B++ даст 21

--

Декремент - уменьшает значение операнда на 1

B-- даст 19

Операторы сравнения

Есть следующие операторы сравнения, поддерживаемые на языке Java. Предположим, переменная A равна 10, а переменная B равна 20. В следующей таблице перечислены реляционные операторы или операторы сравнения в Java:

Оператор
Описание
Пример

==

Проверяет, равны или нет значения двух операндов, если да, то условие становится истинным

(A == B) — не верны

!=

Проверяет, равны или нет значения двух операндов, если значения не равны, то условие становится истинным

(A != B) — значение истинна

>

Проверяет, является ли значение левого операнда больше, чем значение правого операнда, если да, то условие становится истинным

(A > B) — не верны

<

Проверяет, является ли значение левого операнда меньше, чем значение правого операнда, если да, то условие становится истинным

(A < B) — значение истинна

>=

Проверяет, является ли значение левого операнда больше или равно значению правого операнда, если да, то условие становится истинным

(A >= B) — значение не верны

<=

Проверяет, если значение левого операнда меньше или равно значению правого операнда, если да, то условие становится истинным

(A <= B) — значение истинна

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

Java определяет несколько побитовых операторов, которые могут быть применены для целочисленных типов: int, long, short, char и byte. В Java побитовый оператор работает над битами и выполняет операцию бит за битом. Предположим, если a = 60; и b = 13; то в двоичном формате они будут следующие:

a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011

Предположим целочисленные переменная A равна 60, а переменная B равна 13. В следующей таблице перечислены побитовые операторы в Java:

Оператор
Описание
Пример

& (побитовое и)

Бинарный оператор AND копирует бит в результат, если он существует в обоих операндах.

(A & B) даст 12, который является 0000 1100

| (побитовое или)

Бинарный оператор OR копирует бит, если он существует в любом из операндов.

(A | B) даст 61 который равен 0011 1101

^ (побитовое логическое или)

Бинарный оператор XOR копирует бит, если он установлен в одном операнде, но не в обоих.

(A ^ B) даст 49, которая является 0011 0001

~ (побитовое дополнение)

Бинарный оператор дополнения и имеет эффект «отражения» бит.

(~ A) даст -61, которая является формой дополнением 1100 0011 в двоичной записи

<< (сдвиг влево)

Бинарный оператор сдвига влево. Значение левых операндов перемещается влево на количество бит, заданных правым операндом.

A << 2 даст 240, который 1111 0000

>> (сдвиг вправо)

Бинарный оператор сдвига вправо. Значение правых операндов перемещается вправо на количество бит, заданных левых операндом.

A >> 2 даст 15, который является 1111

>>> (нулевой сдвиг вправо)

Нулевой оператор сдвига вправо. Значение левых операндов перемещается вправо на количество бит, заданных правым операндом, а сдвинутые значения заполняются нулями.

A >>> 2 даст 15, который является 0000 1111

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

Предположим, логическая переменная A имеет значение true, а переменная B хранит false. В следующей таблице перечислены логические операторы в Java:

Оператор
Описание
Пример

&&

Называется логический оператор «И». Если оба операнда являются не равны нулю, то условие становится истинным

(A && B) — значение false

||

Называется логический оператор «ИЛИ». Если любой из двух операндов не равен нулю, то условие становится истинным

(A || B) — значение true

!

Называется логический оператор «НЕ». Использование меняет логическое состояние своего операнда. Если условие имеет значение true, то оператор логического «НЕ» будет делать false

!(A && B) — значение trueПример

Операторы присваивания

Существуют следующие операторы присваивания, поддерживаемые языком Java:

Оператор
Описание
Пример

=

Простой оператор присваивания, присваивает значения из правой стороны операндов к левому операнду

C = A + B, присвоит значение A + B в C

+=

Оператор присваивания «Добавления», он присваивает левому операнду значения правого

C += A, эквивалентно C = C + A

-=

Оператор присваивания «Вычитания», он вычитает из правого операнда левый операнд

C -= A, эквивалентно C = C - A

*=

Оператор присваивания «Умножение», он умножает правый операнд на левый операнд

C * = A эквивалентно C = C * A

/=

Оператор присваивания «Деление», он делит левый операнд на правый операнд

C /= A эквивалентно C = C / A

%=

Оператор присваивания «Модуль», он принимает модуль, с помощью двух операндов и присваивает его результат левому операнду

C %= A, эквивалентно C = C % A

<<=

Оператор присваивания «Сдвиг влево»

C << = 2, это как C = C << 2

>>=

Оператор присваивания «Сдвиг вправо»

C >>= 2, это как C = C >> 2

&=

Оператор присваивания побитового «И» («AND»)

C &= 2, это как C = C & 2

^=

Оператор присваивания побитового исключающего «ИЛИ» («XOR»)

C ^= 2, это как C = C ^ 2

|=

Оператор присваивания побитового «ИЛИ» («OR»)

C |= 2, это как C = C | 2

Прочие операторы

Есть несколько других операторов, поддерживаемых языком Java.

Тернарный оператор или условный оператор (?:)

Тернарный оператор — оператор, который состоит из трех операндов и используется для оценки выражений типа boolean. Тернарный оператор в Java также известен как условный оператор. Этот. Цель тернарного оператора или условного оператора заключается в том, чтобы решить, какое значение должно быть присвоено переменной. Оператор записывается в виде:

переменная x = (выражение) ? значение if true : значение if false

Пример

Ниже приведен пример:

public class Test {
 
   public static void main(String args[]){
      int a , b;
      a = 10;
      b = (a == 1) ? 20 : 30;
      System.out.println( "Значение b: " +  b );
 
      b = (a == 10) ? 20 : 30;
      System.out.println( "Значение b: " + b );
   }
}

Будет получен следующий результат:

Значение b: 30
Значение b: 20

Оператор instanceof

Оператор instanceof — проверяет, является ли объект определенного типа (типа класса или типа интерфейса) и используется только для переменных ссылочного объекта. Оператор instanceof записывается в виде:

(Переменная ссылочного объекта) instanceof (класс/тип интерфейса)

Примеры

Если переменная ссылочного объекта в левой части оператора проходит проверку для класса/типа интерфейса на правой стороне, результатом будет значение true. Ниже приведен пример и описание оператора instanceof:

public class Test {
 
   public static void main(String args[]){
      String name = "Олег";
      // Следующее вернётся верно, поскольку тип String
      boolean result = name instanceof String;  
      System.out.println( result );
   }
}

Будет получен следующий результат:

true

Этот оператор по-прежнему будет возвращать значение true, если сравниваемый объект является совместимым с типом на право назначения. Ниже приводится еще один пример:

class Vehicle {}
 
public class Car extends Vehicle {
   public static void main(String args[]){
      Vehicle a = new Car();
      boolean result =  a instanceof Car;
      System.out.println( result );
   }
}

Будет получен следующий результат:

true

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

Приоритет операторов определяет группирование терминов в выражении. Это влияет как вычисляется выражение. Некоторые операторы имеют более высокий приоритет, чем другие; например оператор умножения имеет более высокий приоритет, чем оператор сложения:

Например, x = 7 + 3 * 2. Здесь x присваивается значение 13, не 20, потому что оператор «*» имеет более высокий приоритет, чем «+», так что сначала перемножается «3 * 2», а затем добавляется «7».

В таблице операторы с наивысшим приоритетом размещаются в верхней части, и уровень приоритета снижается к нижней части таблицы. В выражении высокий приоритет операторов в Java будет оцениваться слева направо.

Категория
Оператор
Ассоциативность

Постфикс

() [] . (точка)

Слева направо

Унарный

++ - - ! ~

Справа налево

Мультипликативный

* / %

Слева направо

Аддитивный

+ -

Слева направо

Сдвиг

>> >>> <<

Слева направо

Реляционный

> >= < <=

Слева направо

Равенство

== !=

Слева направо

Побитовое «И» («AND»)

&

Слева направо

Побитовое исключающее «ИЛИ» («XOR»)

^

Слева направо

Побитовое «ИЛИ» («OR»)

|

Слева направо

Логическое «И» («AND»)

&&

Слева направо

Логическое «ИЛИ» («OR»)

||

Слева направо

Условный

?:

Справа налево

Присваивание

= += -= *= /= %= >>= <<= &= ^= |=

Справа налево

Запятая

,

Слева направо

PreviousПеременные и константыNextУправляющие последовательности

Last updated 3 years ago