# Difference Between & and && in Java

In this section, we will discuss the two most important operators & and && in Java and also see the key differences between logical and bitwise operators along with its uses. ## & Operator

The single AND operator (&) is known as the Bitwise AND operator. It operates on a single bit. It takes two operands. A bit in the result is 1 if and only if both of the corresponding bits in the operands are 1. The result of the operator may be any number. For example:

a = 01100010

b = 10111010

a&b = 00100010

## && Operator

The double AND operators (&&) are known as logical AND operators. It is usually used in loops and conditional statements. It is usually used in Boolean expressions. The result of && is always 0 or 1.

## Difference Between & and &&

The key difference between && and & operators is that && supports short-circuit evaluations while & operator does not.

Another difference is that && will evaluate the expression exp1, and immediately return a false value if exp1 is false. While & operator always evaluates both expressions (exp1 and exp2) before retiring an answer.

S.N. Basis & Operator && Operator
1 Operator It is a bitwise AND operator. It is a logical AND operator.
2 Evaluation It evaluates both the left and right side of the given expression. It only evaluates the left sides of the given expression.
3 Operates on It operates on Boolean data types as well as on bits. It operates only on Boolean datatype.
4 Uses Used to check logical condition and also used to mask off certain bits such as parity bits. Used only to check the logical conditions.
5 Example z = x & y if (y > 1 && y > x)

Let's understand bitwise and logical and operator through a Java program.

LogicalAndExample.java

Output:

```true
false
```

BitwiseAndExample.java

Output:

```a&b=1
```

Let's create another Java program and use Logical and Bitwise AND operators simultaneously.

JavaOperators.java

Output:

```8
true
```

### Feedback   