Although there are many ways of making a class singleton, I am going to stick to only 2 ways of making classes singleton.

Approach 1. Private Constructor
Make constructor private and expose a public static final field. The final field is initialized using the constructor which is run just once.
/**
 * Singleton using enum
 * 
 * @author lekhak.tumblr.com
 */
public class Properties {
	public static final Properties properties = new Properties();

        private Properties() { ... }

	public static Properties getInstance () {
        return properties ;
    }
}
Approach 2. Using Enum
/**
 * Singleton using enum
 * 
 * @author lekhak.tumblr.com
 */
public enum Properties {
	INSTANCE;
	
	Map properties = new HashMap();
	
	Properties() {
		properties = loadFromDB();
	}

	public Map loadFromDB() {
		//Implementation
		return new HashMap();
	}
}
**Please note that when a singleton class is made serializable, to ensure the creation of the instance only once, one has to use a readResolve method.