A singleton class in Java is a class that can have only one object (an instance of the class) at a time. It is a design pattern that ensures that a class can only have one object. To create a singleton class, a class must implement the following properties:
- Create a private constructor
- Create a private static variable that is a reference to the object of the class
- Create a public static method that returns the reference to the only object of the class
The primary purpose of a singleton class is to restrict the limit of the number of object creations to only one. Singleton pattern is mostly used in multi-threaded and database applications. It is used in logging, caching, thread pools, configuration settings, etc. . Singleton classes can be used while working with databases to create a connection pool to access the database while reusing the same connection for all the clients.
Singleton classes are useful when we want to ensure that only one instance of a class exists in the entire application. It is also useful when we want to control the number of instances of a class that can be created, or when we want to ensure that all objects of a class share a common state.