English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Разница между java & и && с примерами

Разница между 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

Спасибо за чтение, надеюсь, это поможет вам, спасибо за поддержку нашего сайта!

Тебе может понравиться