Ventsyv Static is a part of the language. Singleton is a way of using static.
A static variable gets created in a special place where it will always be the same. You can create a global static for a class and then anything can access that created class from anywhere. This model doesn't prevent something from accidentally (or purposefully) creating a new instance of that class, however.
The singleton pattern does the same thing, it creates a static object, but the only way to get to that object is by calling the static method "getInstance()". Make the constructor private, and you prevent any mistakes by accidentally creating a new object instead of using the singleton one.
This has additional benefits in that the getInstance() can know to do some special initialization outside the constructor the first time it is called, should your class be complex enough to need it.