彻底剖析JVM类加载机制 (4)

直接删除双亲委派代码是不可行的,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拷出来执行。沙箱隔离。

image

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgxjzg.html