前言
記一次阿里面試的時候的一道面試題,被問到可以自定義java.lang.String這個類,讓你自定義的類加載器進行加載麼?
分析ClassLoader
跟着這個loadClass一路追蹤,首先找到了defineClass
接着我們再看preDefineClass
這個方法
下面是preDefineClass
方法的源碼
可以看到JVM不允許你這樣做的,會出現java.lang.SecurityException,JVM做了安全檢查的,幾乎也沒有人定義與JDK核心類庫完全限定名的類。