code: public Class<?> loadClass(String name) throws ClassNotFoundException {
          while (true) {
              try {
                  if (mClassLoader == null) {
                      return Class.forName(name);
                  } else {
                      return mClassLoader.loadClass(name);
                  }
              } catch (ClassNotFoundException e) {
                  int index = name.lastIndexOf('.');
                  if (index < 0) {
                      throw e;
                  }
  
                  // Search for inner class.
                  name = name.substring(0, index) + '$' +
                          name.substring(index + 1);
              }
          }
      }
docs: Loads and returns a class by the fully qualified name given. If a
  ClassLoader is specified, it is used to load the class. Otherwise,
  the class is loaded via Class.forName.
  
  @see #setClassLoader(ClassLoader)