Singleton Class in Java – Definition, Syntax, and Example
![]() |
Singleton Class in Java – Definition, Syntax, and Example
The Singleton Class in Java is a design pattern that ensures only one instance of a class exists throughout the application. This is particularly useful when exactly one object is needed to coordinate actions across the system.
Definition
A Singleton Class is a class that allows only a single instance to be created and provides a global point of access to that instance.
Key Points of Singleton Class
- Only one instance of the class is created.
- Provides a global access point.
- Can be implemented using Eager Initialization or Lazy Initialization.
- Thread safety is important for multi-threaded applications.
Syntax
class Singleton {
// Private static instance
private static Singleton singleInstance = null;
// Private constructor to prevent instantiation
private Singleton() {
System.out.println("Singleton instance created");
}
// Public static method to get the instance
public static Singleton getInstance() {
if (singleInstance == null) {
singleInstance = new Singleton();
}
return singleInstance;
}
}
Example Usage
public class Main {
public static void main(String[] args) {
// Both instances will refer to the same object
Singleton obj1 = Singleton.getInstance();
Singleton obj2 = Singleton.getInstance();
if (obj1 == obj2) {
System.out.println("Both refer to the same instance");
}
}
}
Advantages of Singleton Pattern
- Controls concurrent access to resources.
- Reduces memory usage by reusing the same instance.
- Provides a centralized way to manage shared data.
Disadvantages of Singleton Pattern
- Difficult to unit test due to global state.
- Can lead to tightly coupled code.
- Not suitable for scenarios requiring multiple instances.
Frequently Asked Questions (FAQ)
Q1: Why use Singleton in Java?
To ensure that only one instance of a class exists and to provide global access to it.
Q2: Is Singleton thread-safe?
It depends on the implementation. Use synchronized blocks or other techniques for thread safety.
Q3: Can we clone a Singleton object?
No, you should override the clone() method to prevent cloning.

Comments
Post a Comment