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.
Table of Contents
Relational Operators in Java
Java has 6 relational operators.
- == is the equality operator. This returns true if both the operands are referring to the same object, otherwise false.
- != is for non-equality operator. It returns true if both the operands are referring to the different objects, otherwise false.
- < is less than operator.
- > is greater than operator.
- <= is less than or equal to operator.
- >= 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
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
It’s because primitive data types are cached. So when you say
x=5
and theny=5
, both x and y are referring to the same memory location.equals is an Override method of base class Object, then equals is better for object comparison and not for primitive types
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
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