前言
记一次阿里面试的时候的一道面试题,被问到可以自定义java.lang.String这个类,让你自定义的类加载器进行加载么?
分析ClassLoader
跟着这个loadClass一路追踪,首先找到了defineClass
接着我们再看preDefineClass
这个方法
下面是preDefineClass
方法的源码
可以看到JVM不允许你这样做的,会出现java.lang.SecurityException,JVM做了安全检查的,几乎也没有人定义与JDK核心类库完全限定名的类。