privatefinal ClassLoader parent;protected Class<?>loadClass(String name,boolean resolve)throws ClassNotFoundException
{synchronized(getClassLoadingLock(name)){// 首先,检查请求的类是否已经被加载过
Class<?> c =findLoadedClass(name);if(c == null){long t0 = System.nanoTime();try{if(parent != null){//父加载器不为空,调用父加载器loadClass()方法处理
c = parent.loadClass(name,false);}else{//父加载器为空,使用启动类加载器 BootstrapClassLoader 加载
c =findBootstrapClassOrNull(name);}}catch(ClassNotFoundException e){//抛出异常说明父类加载器无法完成加载请求}if(c == null){long t1 = System.nanoTime();//自己尝试加载
c =findClass(name);// this is the defining class loader; record the stats
sun.misc.PerfCounter.getParentDelegationTime().addTime(t1 - t0);
sun.misc.PerfCounter.getFindClassTime().addElapsedTimeFrom(t1);
sun.misc.PerfCounter.getFindClasses().increment();}}if(resolve){resolveClass(c);}return c;}}