Читал книгу философия ява. дошёл к пункту: какя разница между одинарним и двойним использованием сивволов
boolean i,a;
if(a||i){}
if(a|i){}
if(a&&i){}
if(a&i){}
Кроме того что &
это должно бить двое true
,
а с |
нужно только одно true
.
Вообще, &
и |
- побитовые операторы, а &&
и ||
- логические.
В случае с boolean
типами в вашем примере нет разницы принципиальной. В общем случае при использовании &
или |
на boolean
правая часть выражения будет вычисляться независимо от того, какое значение у левой части выражения.
К примеру, если бы там были не просто переменные, а метод, скажем:
private boolean additionalCheck() {
// делаем что-то
// к примеру, меняем глобальное состояние
return true;
}
То между if(a||additionalCheck()){}
и if(a|additionalCheck()){}
будет разница, если a
равно true
.
В первом случае additionalCheck()
вообще не вызовется, т.к. a
уже true
и нет смысла проверять другие условия. А вот втором случае additionalCheck()
вызовется независимо от значения a
.
Если у вас в additionalCheck()
специфичная логика, к примеру, меняющая глобальное состояние, то нужно с умом выбирать, что использовать - |
/&
или ||
/&&
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть форма с таблицей, в каждой строке есть чекбоксПри переходе в следующую форму в нее передаются записи из таблицы с выбранным чекбоксом
Вопрос может немного не для этого сообщества, но все же
Есть небольшая програма по форматированию строки с использованием регулярного выраженияВ коде присутствует множесвенное использование...
Прочитал в книге: На стадии планирования в программы вы можете выбрать список LinkedList, а потом, в процессе оптимизации, переключиться на ArrayListБлагодаря...