Java Logical Operators – OR, XOR, Not & More

In this tutorial, we will Explore Various Logical Operators Supported in Java such as NOT, OR, XOR Java or Bitwise Exclusive Operator in Java With Examples:

In one of our earlier tutorials on Java Operator, we saw the different types of operators available in Java. Here, we will explore the Logical Operators supported by Java in detail.

First, let’s see what Logical Operators are?

=> Check Out The Complete FREE Java Course Here

Logical Operators

What Are Logical Operators?

Java supports the following conditional operators that are also called as Logical Operators:

OperatorDescription
&&Conditional-AND
||Conditional-OR
!Logical NOT

Java also supports the following Bitwise Logical Operator:

^Bitwise exclusive OR
Also known as XOR

These logical operations are performed on two Boolean expressions.

Let’s see these operators in details :

  • &&: This operator is called as Conditional-AND. Here, && performs conditional AND on two boolean expressions.

For Example,

public class LogicalOperatorsDemo1 {
	public static void main(String[] args) {
		boolean x = true;//boolean variable x is intialiized with value true
		boolean y = false;//boolean variable y is intialiized with value false
		boolean z = (x && y) ;//conditional-AND on x and y
		System.out.println("x && y = " + z);//print value of the result
		//This gives an output x && y = false
	}
}

This program prints the following output:

Conditional_AND

Here, x and y are two boolean values.

&& performs Conditional-AND on x=true and y=false , it returns true&&false i.e. false

  • ||: This operator is called as Conditional-OR. Here, || performs conditional OR on two boolean expressions.

For Example,

public class LogicalOperatorsDemo2 {
	public static void main(String[]args) {
		boolean x = true;//boolean variable x is intialiized with value true
		boolean y = false;//boolean variable y is intialiized with value false	
		boolean z = (x || y) ;	//conditional-OR on x and y
		System.out.println("x || y = " + z);//print value of the result
		//This gives an output x || y = true
	}
}

This program prints the following output:

Conditional_OR

Here, x and y are two boolean values.

|| performs Conditional-OR on x=true and y=false , it returns true||false i.e. true

  • !: This is called a logical complement operator. This is performed on a single operand. This operator inverts the value of a boolean.

For Example,

public class LogicalOperatorsDemo3 {
    public static void main(String[]args) {
	boolean x = true;//boolean variable x is intialiized with value true
	boolean z = !x; //	inverting the value of x
	System.out.println("z = " + z);//print value of the result
        //This gives output as z = false
    }
}

This program prints the following output:

LogicalComplement operator

In the above program, ! returns an inverted value of the boolean variable value x i.e.!(true) i.e. false.

Bitwise Exclusive OR – XOR Java

Now let’s see Java Bitwise Operator i.e. XOR Operator in detail:

^Bitwise exclusive OR
Also known as XOR

Bitwise exclusive OR or XOR ^ is binary operator performs a bit by bit exclusive OR operation.

It performs the operation as follows:

  • If both the bits are the same, then the XOR operator returns the result as ‘0'.
  • If both the bits are different, then the XOR operator returns the result as ‘1'.
xyx ^ y
truefalsetrue
truetruefalse
falsetruetrue
falsefalsefalse

XOR operator follows an evaluation order from the left to right order.

Let us have a look at the following Java sample that illustrated the use of Java xor Operators:

public class XorDemo {
   public static void main(String[] args) {
      boolean a = true;
      boolean b = false;
      boolean result = a ^ b;
      System.out.println("a ^ b: "+ result); //prints the result true

      a = true;
      b = true;
      result = a ^ b;
      System.out.println("a ^ b: "+ result); //prints the result false

      a = false;
      b = true;
      result = a ^ b;
      System.out.println("a ^ b: "+ result); //prints the result true

      a = false;
      b = false;
      result = a ^ b;
      System.out.println("a ^ b: "+ result); //prints the result false
   }
}

This program prints the following output:

Use of java XOR operators

Let's see how this XOR operation takes place for integer values with the following example:

To perform Java XOR operation on integer values like int 6 and int 10,

XOR happens on binary values of 6 i.e. 0110 and 10 i.e. 1010.

So XOR on 6 and 10 as follows :

0110
^
1010
=======
1100

Result returned is the integer value of 1100 is 12

Given below is the sample Java program to perform XOR on two integers:

public class XorDemo1 {
  public static void main(String[] args) {
	int x = 6;// Binary value of 6 is 0110
	int y = 10;// Binary value of 10 is	1010
	int result = x^y;// xor operation on 0110^1010 which gives 1100
        System.out.println("result: "+result);//integer value of 1100 is 12
   }
}

This program prints the following output:

xor on two integers

Frequently Asked Questions And Answers

Q #1) What is the XOR operation?

Answer: Bitwise exclusive OR or XOR ^ is a binary operator that performs a bit by bit exclusive OR operation.

Q #2) How is XOR calculated?

Answer: Bitwise exclusive OR or XOR ^  performs a bit by bit exclusive OR operation as follows:

  • If both the bits are the same, then the XOR operator returns the result as ‘0'.
  • If both the bits are different, then the XOR operator returns the result as ‘1'.

Q #3) What is the difference between && and & in Java?

Answer: &&: This is Conditional-AND performed on two boolean operands.

Whereas, & is a bitwise AND operator which is performed on bit operands.

Q #4) What is OR operator in Java?

Answer: Java supports Conditional-OR i.e. || Here, ||performs conditional OR on two boolean expressions.

For Example,

boolean x = true;
boolean y = false;
(x || y ) returns true

Q #5) What is the symbol of OR in Java?

Answer: Java supports Conditional-OR having symbol ||. This is different than the exclusive or bitwise operation and it has symbol ^.

Q #6) What is the use of Bitwise Operators in Java?

Answer: Bitwise operators in Java are used for manipulating bits of a number. They can be used with data types like char, short, int, etc.

Conclusion

In this tutorial, we have explored the following logical operators supported in Java in detail with the help of sample programs.

  • && : Conditional-AND
  • || : Conditional-OR
  • ! : Logical NOT

We also discussed the following operator:

  • ^ : Bitwise exclusive or XOR

=> Read Through The Java Beginners Training Series Here