### Question:
PluginClassLoader extends URLClassLoader { @Override public Class<?> loadClass(String name) throws ClassNotFoundException { logger.trace("Received request to load class '{}'", name); synchronized (getClassLoadingLock(name)) { if (name.startsWith(JAVA_PACKAGE_PREFIX) || name.startsWith(JAVAX_PACKAGE_PREFIX)) { return findSystemClass(name); } boolean isWhitePrefixes = fromWhitePrefix(name); boolean isExcludePrefixed = fromExcludePrefix(name); if (!isWhitePrefixes && isExcludePrefixed) { return getParent().loadClass(name); } Class<?> loadedClass = findLoadedClass(name); if (loadedClass != null) { logger.debug("Found loaded class '{}'", name); return loadedClass; } try { loadedClass = findClass(name); logger.debug("Found class '{}' in plugin classpath", name); return loadedClass; } catch (ClassNotFoundException e) { } return super.loadClass(name); } } PluginClassLoader(URL[] urls, ClassLoader parent, String[] whitePrefix, String[] excludePreifx); @Override Class<?> loadClass(String name); @Override Enumeration<URL> getResources(String name); @Override URL getResource(String name);  }### Answer:
@Test public void loadClassNull() { Class clazz = null; try { clazz = pluginClassLoader.loadClass("java.lang.Object"); } catch (ClassNotFoundException e) { e.printStackTrace(); } assertEquals(null, clazz.getClassLoader()); }
@Test public void loadClassApp() { Class clazz = null; try { clazz = pluginClassLoader.loadClass("org.apache.dolphinscheduler.common.Constants"); } catch (ClassNotFoundException e) { e.printStackTrace(); } assertEquals(parent, clazz.getClassLoader()); }