English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Разница между java & и &&: & является как битовым оператором, так и логическим оператором,两侧 могут быть int или boolean выражением, когда两侧 are int, необходимо сначала преобразовать числа на两侧 в двоичное представление, а затем производить операцию, а короткое объединение (&&) требует, чтобы两侧 были boolean выражениями.
Наверное, многие сталкиваются с этим, когда учатся Java или проходят интервью
и &&
Однако, если вы не понимаете их истинного значения, это может создать значительные проблемы в вашей логике
В этой статье, после того как вы её прочтёте, вы обнаружите, что легко можно отличить их друг от друга
Ниже мой демонстрационный пример
/**
*
*/
package com.b510.test;
/**
* @author Jone Hongten
* @create date:2013-11-2
* @version 1.0
*/
public class Test {
public static void main(String[] args) {}}
String str = null;
if(str != null && !"".equals(str)){
//делать что-то
}
if(str != null & !"".equals(str)){
//делать что-то
}
}
}
Теперь у нас могут быть некоторые неясности, давайте сначала посмотрим на проблемы электроники с & и &&:
Для: &&
if(str != null && !"".equals(str))
Когда: str != null, только затем будет выполняться: !"".equals(str)
Если: str != null false, то в этом случае программа находится в состоянии короткого замыкания, и !"".equals(str) не будет выполняться.
Но для: &
if(str != null & !"".equals(str))
Независимо от результата: str != null (будь то true, false), программа всегда будет выполнять: !"".equals(str)
Обобщение проблем электроники:
Для: & --> Программа справа и слева от знака "&" всегда будет выполняться.
Для: && --> Программа справа от знака "&&" будет выполняться только после того, как программа слева от знака "&&" будет истинна (true).
Рассмотрим правила вычисления:
Для: & --> Если слева или справа false, то результат false; только когда все true, результат true
Для: && --> Если слева от знака false, то результат false; когда слева true, а справа также true, то результат true
Спасибо за чтение, надеюсь, это поможет вам, спасибо за поддержку нашего сайта!