I would like to know about pros n cons of Singleton and class with static methods and where to use what?
Also, What I could find is, Singleton should be used where we want to have some state associated, but with static methods too, we can have static variables to keep the state as with singleton also only one instance is involved?
Singleton pattern ensures that others get hold of a single instance of an entity.
Static pattern, though is maintained as a single copy in JVM, could result in concurrency issues (when used in replication/fault-tolerant scenarios), if data members are also accessible or they manipulate external resources (such as files, databases etc...).
In terms of practical experience - as opposed to theory - I've usually regretted using static methods. Sooner or later, I tend to end up with a situation where the bean in question needs to maintain state and the state isn't global. It's fairly easy to convert singletons to non-singleton objects, but converting static stateless to non-singleton stateful objects can be a right royal pain.
Customer surveys are for companies who didn't pay proper attention to begin with.