In Java, operators are special symbols that perform specific operations on one, two, or three operands and then return a result. Operators are essential in programming as they allow you to manipulate data and variables to perform various tasks. In this section, we will cover the different types of operators available in Java.
Types of Operators
Java provides a rich set of operators to manipulate variables. They can be categorized as follows:
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Bitwise Operators
- Assignment Operators
- Unary Operators
- Ternary Operator
- Arithmetic Operators
Arithmetic operators are used to perform basic mathematical operations.
Operator | Description | Example |
---|---|---|
+ |
Addition | a + b |
- |
Subtraction | a - b |
* |
Multiplication | a * b |
/ |
Division | a / b |
% |
Modulus (Remainder) | a % b |
Example:
public class ArithmeticOperators { public static void main(String[] args) { int a = 10; int b = 5; System.out.println("a + b = " + (a + b)); // 15 System.out.println("a - b = " + (a - b)); // 5 System.out.println("a * b = " + (a * b)); // 50 System.out.println("a / b = " + (a / b)); // 2 System.out.println("a % b = " + (a % b)); // 0 } }
- Relational Operators
Relational operators are used to compare two values. They return a boolean result (true
or false
).
Operator | Description | Example |
---|---|---|
== |
Equal to | a == b |
!= |
Not equal to | a != b |
> |
Greater than | a > b |
< |
Less than | a < b |
>= |
Greater than or equal | a >= b |
<= |
Less than or equal | a <= b |
Example:
public class RelationalOperators { public static void main(String[] args) { int a = 10; int b = 5; System.out.println("a == b: " + (a == b)); // false System.out.println("a != b: " + (a != b)); // true System.out.println("a > b: " + (a > b)); // true System.out.println("a < b: " + (a < b)); // false System.out.println("a >= b: " + (a >= b)); // true System.out.println("a <= b: " + (a <= b)); // false } }
- Logical Operators
Logical operators are used to combine multiple boolean expressions.
Operator | Description | Example |
---|---|---|
&& |
Logical AND | a && b |
` | ` | |
! |
Logical NOT | !a |
Example:
public class LogicalOperators { public static void main(String[] args) { boolean a = true; boolean b = false; System.out.println("a && b: " + (a && b)); // false System.out.println("a || b: " + (a || b)); // true System.out.println("!a: " + (!a)); // false } }
- Bitwise Operators
Bitwise operators are used to perform operations on individual bits of integer types.
Operator | Description | Example |
---|---|---|
& |
Bitwise AND | a & b |
` | ` | Bitwise OR |
^ |
Bitwise XOR | a ^ b |
~ |
Bitwise Complement | ~a |
<< |
Left Shift | a << 2 |
>> |
Right Shift | a >> 2 |
>>> |
Unsigned Right Shift | a >>> 2 |
Example:
public class BitwiseOperators { public static void main(String[] args) { int a = 5; // 0101 in binary int b = 3; // 0011 in binary System.out.println("a & b: " + (a & b)); // 1 (0001 in binary) System.out.println("a | b: " + (a | b)); // 7 (0111 in binary) System.out.println("a ^ b: " + (a ^ b)); // 6 (0110 in binary) System.out.println("~a: " + (~a)); // -6 (in binary: 1111...1010) System.out.println("a << 2: " + (a << 2)); // 20 (10100 in binary) System.out.println("a >> 2: " + (a >> 2)); // 1 (0001 in binary) System.out.println("a >>> 2: " + (a >>> 2)); // 1 (0001 in binary) } }
- Assignment Operators
Assignment operators are used to assign values to variables.
Operator | Description | Example |
---|---|---|
= |
Simple assignment | a = b |
+= |
Add and assign | a += b |
-= |
Subtract and assign | a -= b |
*= |
Multiply and assign | a *= b |
/= |
Divide and assign | a /= b |
%= |
Modulus and assign | a %= b |
&= |
Bitwise AND and assign | a &= b |
` | =` | Bitwise OR and assign |
^= |
Bitwise XOR and assign | a ^= b |
<<= |
Left shift and assign | a <<= 2 |
>>= |
Right shift and assign | a >>= 2 |
>>>= |
Unsigned right shift | a >>>= 2 |
Example:
public class AssignmentOperators { public static void main(String[] args) { int a = 10; int b = 5; a += b; // a = a + b System.out.println("a += b: " + a); // 15 a -= b; // a = a - b System.out.println("a -= b: " + a); // 10 a *= b; // a = a * b System.out.println("a *= b: " + a); // 50 a /= b; // a = a / b System.out.println("a /= b: " + a); // 10 a %= b; // a = a % b System.out.println("a %= b: " + a); // 0 } }
- Unary Operators
Unary operators are used with only one operand.
Operator | Description | Example |
---|---|---|
+ |
Unary plus | +a |
- |
Unary minus | -a |
++ |
Increment | a++ or ++a |
-- |
Decrement | a-- or --a |
! |
Logical NOT | !a |
Example:
public class UnaryOperators { public static void main(String[] args) { int a = 10; System.out.println("a: " + a); // 10 System.out.println("++a: " + ++a); // 11 (pre-increment) System.out.println("a++: " + a++); // 11 (post-increment) System.out.println("a: " + a); // 12 System.out.println("--a: " + --a); // 11 (pre-decrement) System.out.println("a--: " + a--); // 11 (post-decrement) System.out.println("a: " + a); // 10 } }
- Ternary Operator
The ternary operator is a shorthand for the if-else
statement. It takes three operands.
Operator | Description | Example |
---|---|---|
? : |
Ternary (conditional) | a ? b : c |
Example:
public class TernaryOperator { public static void main(String[] args) { int a = 10; int b = 5; int max = (a > b) ? a : b; System.out.println("Max of a and b: " + max); // 10 } }
Practical Exercises
Exercise 1: Arithmetic Operations
Task: Write a Java program that takes two integers as input and performs all arithmetic operations on them.
Solution:
import java.util.Scanner; public class ArithmeticExercise { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter first number: "); int num1 = scanner.nextInt(); System.out.print("Enter second number: "); int num2 = scanner.nextInt(); System.out.println("Addition: " + (num1 + num2)); System.out.println("Subtraction: " + (num1 - num2)); System.out.println("Multiplication: " + (num1 * num2)); System.out.println("Division: " + (num1 / num2)); System.out.println("Modulus: " + (num1 % num2)); } }
Exercise 2: Relational and Logical Operations
Task: Write a Java program that takes two boolean values as input and performs all relational and logical operations on them.
Solution:
import java.util.Scanner; public class RelationalLogicalExercise { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter first boolean value (true/false): "); boolean bool1 = scanner.nextBoolean(); System.out.print("Enter second boolean value (true/false): "); boolean bool2 = scanner.nextBoolean(); System.out.println("bool1 == bool2: " + (bool1 == bool2)); System.out.println("bool1 != bool2: " + (bool1 != bool2)); System.out.println("bool1 && bool2: " + (bool1 && bool2)); System.out.println("bool1 || bool2: " + (bool1 || bool2)); System.out.println("!bool1: " + (!bool1)); } }
Conclusion
In this section, we covered the various types of operators in Java, including arithmetic, relational, logical, bitwise, assignment, unary, and ternary operators. We also provided practical examples and exercises to help you understand how to use these operators in your programs. Understanding operators is fundamental to writing effective and efficient Java code. In the next module, we will delve into control flow statements, which will allow you to control the execution flow of your programs based on certain conditions.
Java Programming Course
Module 1: Introduction to Java
- Introduction to Java
- Setting Up the Development Environment
- Basic Syntax and Structure
- Variables and Data Types
- Operators
Module 2: Control Flow
Module 3: Object-Oriented Programming
- Introduction to OOP
- Classes and Objects
- Methods
- Constructors
- Inheritance
- Polymorphism
- Encapsulation
- Abstraction
Module 4: Advanced Object-Oriented Programming
Module 5: Data Structures and Collections
Module 6: Exception Handling
Module 7: File I/O
Module 8: Multithreading and Concurrency
- Introduction to Multithreading
- Creating Threads
- Thread Lifecycle
- Synchronization
- Concurrency Utilities
Module 9: Networking
- Introduction to Networking
- Sockets
- ServerSocket
- DatagramSocket and DatagramPacket
- URL and HttpURLConnection