Difference between & and && in Java?
In Java, the &
operator is a bitwise AND operator, and the &&
operator is a logical AND operator.
The difference between these operators is in the way they evaluate their operands.
The &
operator evaluates both operands, regardless of their value. It then performs a bitwise AND operation on the operands and returns the result.
The &&
operator, on the other hand, evaluates its operands only if necessary. If the first operand is false
, it returns false
without evaluating the second operand. This is known as short-circuit evaluation.
Here is an example of how you can use the &
and &&
operators in Java:
int x = 5;
int y = 6;
if ((x > 0) & (y > 0)) { // both operands are evaluated
System.out.println("Both x and y are positive.");
}
if ((x > 0) && (y > 0)) { // second operand is not evaluated
System.out.println("Both x and y are positive.");
}
In this example, both the &
operator and the &&
operator are used in an if
statement to check if both x
and y
are positive.
The first if
statement uses the &
operator, which evaluates both operands. If both operands are true
, the statement is executed.
The second if
statement uses the &&
operator, which evaluates the first operand and, if it is false
, returns false
without evaluating the second operand. If the first operand is true
, it evaluates the second operand and, if it is also true
, executes the statement.
I hope this helps! Let me know if you have any questions.