if (!validArrayDescriptor(className)) throw new IllegalArgumentException();
if (!validArrayDescriptor(className)) throw new ClassNotFoundException();
  public static Class forName(String className, boolean initialize, ClassLoader classLoader) throws ClassNotFoundException {    SecurityManager security = System.getSecurityManager();    if (VM.VerifyAssertions) VM._assert(classLoader != null);    if (className.startsWith("[")) {      if (!validArrayDescriptor(className)) throw new IllegalArgumentException();    }    VM_Atom descriptor = VM_Atom.findOrCreateAsciiAtom(className.replace('.','/')).descriptorFromClassName();    VM_TypeReference tRef = VM_TypeReference.findOrCreate(classLoader, descriptor);    VM_Type ans = tRef.resolve();    VM_Callbacks.notifyForName(ans);    if (initialize && !ans.isInitialized()) {      ans.resolve();      ans.instantiate();      ans.initialize();    }    return ans.getClassForType();  }