以下是我在采访中被问到的内容:
如果将新方法添加到String类并编译并放入 rt.jar,然后会引导类加载器加载吗?
我回答说它不会被加载但是不知道为什么。
请帮助我正确回答和解释。
答案 0 :(得分:0)
它将被加载。
不仅如此:它甚至不需要在rt.jar
中,如果你将一个jar文件添加到boot-classpath(参见-Xbootclasspath/p:path
),那么你甚至可以加载java.lang.*
来自其他jar文件的类。
这个当然是一种违反JVM安全性的方法,但你需要非常深入的访问(对rt.jar
的写访问权限或访问命令行参数JVM),当你拥有它们时,你可以做的不仅仅是替换String.toString()
。