A singleton is a single instance of a class per JVM per class loader. Please google for Java singleton design pattern for example.
Classes are introduced into the Java environment when they are referenced by name in a class that is already running. There is a bit of magic that goes on to get the first class running (which is why you have to declare the main() method as static, taking a string array as an argument), but once that class is running, future attempts at loading classes are done by the class loader. from --> http://www.javaworld.com/javaworld/jw-10-1996/jw-10-indepth.html
String name = "Java" is a STring literal. All string literals in Java programs, are implemented as instances of String class. Strings in Java are 16-bit Unicode.