A singleton is a type of stateless session bean that is instantiated once and only once per application per JVM. I think the main use case is to share state between components in an application. Basically the same use case as the standard singleton
pattern, or anti-pattern depending on your point of view.
A singleton might be a good choice for running some piece of code on a periodic basis, for example.
Check this thread