Relational Operators in Java

Filed Under: Java

Relational Operators in Java are used to comparing two variables for equality, non-equality, greater than, less than, etc. Java relational operator always returns a boolean value – true or false.

Relational Operators in Java

Java has 6 relational operators.

  1. == is the equality operator. This returns true if both the operands are referring to the same object, otherwise false.
  2. != is for non-equality operator. It returns true if both the operands are referring to the different objects, otherwise false.
  3. < is less than operator.
  4. > is greater than operator.
  5. <= is less than or equal to operator.
  6. >= is greater than or equal to operator.

Relational Operators Supported Data Types

  • The == and != operators can be used with any primitive data types as well as objects.
  • The <, >, <=, and >= can be used with primitive data types that can be represented in numbers. It will work with char, byte, short, int, etc. but not with boolean. These operators are not supported for objects.

Relational Operators Example


package com.journaldev.java;

public class RelationalOperators {

	public static void main(String[] args) {

		int a = 10;
		int b = 20;

		System.out.println(a == b);
		System.out.println(a != b);
		System.out.println(a > b);
		System.out.println(a < b);
		System.out.println(a >= b);
		System.out.println(a <= b);

		// objects support == and != operators
		System.out.println(new Data1() == new Data1());
		System.out.println(new Data1() != new Data1());

	}

}

class Data1 {
}

Output:

Relational Operators Java Example

Relational Operators Java Example

Comments

  1. Mannam says:

    Hello

    Thanks for sharing the post.
    I am not able to understand how == works for primitive data type but not for objects. In the above post it was mentioned that it returns true if both the operandi refers to the same object. I understood that it dosen’t work for objects as when we use new keyword new objects are created. So it returns false.
    But can you please explain how does it work for primitive data types?

    Thanks

    1. Pankaj says:

      It’s because primitive data types are cached. So when you say x=5 and then y=5, both x and y are referring to the same memory location.

  2. Reynier Ramos Portieles says:

    equals is an Override method of base class Object, then equals is better for object comparison and not for primitive types

  3. Carl-Adam Bergund says:

    Thank you for describing different operators in java, I’m adam from Sweden. I’m 47 years old and want to program in java. Some times the operator == does not work and I have to use .equals() ex in a nestled for-loop.

    https://pastebin.com/TXbWufVu

    1. Reynier Ramos Portieles says:

      equals is an Override method of base class Object, then equals is better for object comparison and not for primitive types

      e.g:
      class A{}
      classB {}

      A a = new A();
      A a1 = a;
      B b = new B();

      a.equals(b) -> false
      a.equals(a1) -> true

      int i = 5;
      int j = 5;

      i == j -> true

      objects comparison compare data types and also content as default or de Override method implementation in each class

Leave a Reply

Your email address will not be published. Required fields are marked *

close
Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages