В интернете нашел такие "аргументы" как: ||, &&, &, |.
Объяснений к ним не было, но я так понял, что & это "и", а | это "или", а что тогда делают || и && я так и не понял.
Простым языком это объясняется так: если сокращённый вариант && проверяет первое условие и оно не верно, то второе условие не проверяется, так как общий результат уже точно будет false; аналогично если || проверяет первое условие и оно верно, то второе условие не проверяется, так как общий результат уже точно будет true. (& Логическое AND (И); && Сокращённое AND; | Логическое OR (ИЛИ); || Сокращённое OR).
& | ~ >> << >>> ^ - побитовые операторы и, или, не, правый сдвиг, левый сдвиг, правый сдвиг без заполнения, исключающее и.
&& || ! - логические операторы и, или, не.
Побитовые операторы выполняют операции с битами;
Например при применении оператора ~ к числу 11001101 (205) все биты инвертируются, и получится число 00110010 (-206).
Логические операторы выполняют логические операции с true или false;
Например возьмём такую строку кода: System.out.print(!("".isEmpty())). Здесь, метод isEmpty вернет true, но при помощи оператора ! результат инвертируется и соответственно в консоли появится false.
Также замечу что логические операторы могут быть заменены побитовыми, но не наоборот.
1-символные операторы (& и |) - побитовые, они применяются отдельно к каждой паре битов на одинаковой позиции:
0b101 & 0b110 есть 0b100, и 0b101 | 0b110 есть 0b111.
или
101 101
& 110 | 110
------ ------
100 111
по таблицaм
& | 0 | 1 | | | 0 | 1 |
--+---+---+ --+---+---+
0 | 0 | 0 | 0 | 0 | 1 |
--+---+---+ --+---+---+
1 | 0 | 1 | 1 | 1 | 1 |
2-символные операторы (&& и ||) - это то, о чём вы говорите, логические операторы:
(2 * 2 == 4) && (1 + 1 == 2) есть true
(2 * 2 == 7) && (1 + 1 == 2) есть false
(2 * 2 == 7) || (1 + 1 == 2) есть true
(2 * 2 == 7) || (1 + 1 == 9) есть false
по подобным таблицам (где вместо 0 - false, вместо 1 - true, вместо & - &&, и вместо | - ||):
&& | false | true | || | false | true |
------+-------+-------+ ------+-------+------+
false | false | false | false | false | true |
------+-------+-------+ ------+-------+------+
true | false | true | true | true | true |
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости