code: public Class loadClass(String name, boolean resolve)
          throws ClassNotFoundException
      {
          if (name.startsWith("java.")) {
              return super.loadClass(name, resolve); // prevent SecurityException
          }
  
          /*
              Check first for classes loaded through this loader.
              The VM will not allow a class to be loaded twice.
          */
          Class c = findLoadedClass(name);
          if ( c != null ) {
              return c;
          }
  
          // This is copied from ClassManagerImpl
          // We should refactor this somehow if it sticks around
          if ( name.startsWith( ClassManagerImpl.BSH_PACKAGE ) ) {
              final ClassLoader loader = bsh.Interpreter.class
                      .getClassLoader();
              if ( null != loader ) try {
                  return loader.loadClass( name );
              } catch ( ClassNotFoundException e ) { /* ignore */ }
          }
  
          /*
              Try to find the class using our classloading mechanism.
          */
          c = findClass( name );
  
          if ( resolve ) {
              resolveClass( c );
          }
  
          return c;
      }
docs: This modification allows us to reload classes which are in the
  Java VM user classpath.  We search first rather than delegate to
  the parent classloader (or bootstrap path) first.
  
  An exception is for BeanShell core classes which are always loaded from
  the same classloader as the interpreter.