直接删除双亲委派代码是不可行的,Java代码继承自Object,总会需要双亲委派来加载核心代码。
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { synchronized (getClassLoadingLock(name)) { Class<?> c = findLoadedClass(name); if (c == null) { // 非自定义的类还是走双亲委派加载 if (!name.equals("com.lzp.java.jvm.classloader.JVMTest")) { c = this.getParent().loadClass(name); } else { c = findClass(name); } } if (resolve) { resolveClass(c); } return c; } }注:JDK自带的核心库代码,是不允许自行配置修改的。例如,不可以将Object.class拷出来执行。沙箱隔离。