Это зависит от JVM, но Sun / Oracle / OpenJDK использует sun.misc.Unsafe.allocateInstance (Class)
/** Allocate an instance but do not run any constructor.
Initializes the class if it has not yet been. */
public native Object allocateInstance(Class cls)
throws InstantiationException;
http://www.docjar.com/html/api/sun/misc/Unsafe.java.html
Это позволяет создаватьновые экземпляры всего, например, перечисления, но не новые экземпляры класса.