标签:mamicode 优点 int 重复 结果 trap 错误 rac png
在了解双亲委派机制之前,你应当知道classloader(如果不了解,可以现在去恶补一下哈)
java.lang.ClassLoader
package java.lang;
public abstract class ClassLoader {
...
}
当类加载器加载某个类时,自己先不会加载,而是委托给父类加载器,如果父类加载向上还有父类加载器那么依次向上委托,直到最顶层加载器。如果该加载器能够加载该类,那么就由该类加载加载,如果不能则由子类加载加载。如果所有类加载都不能加载则会抛出异常
package java.lang;
class String {
public static void main(String[] args) {
System.out.println("........")
}
}
用户期望的是能够加载自定义的java.lang.String,但实际上的结果:
错误: 在类 java.lang.String 中找不到 main 方法, 请将 main 方法定义为:
public static void main(String[] args)
否则 JavaFX 应用程序类必须扩展javafx.application.Application
没有找到main方法???那么证明jvm没有加载自定义String,而是找到了java core中的java.lang.String.
这样就防止了对java核心代码的污染
标签:mamicode 优点 int 重复 结果 trap 错误 rac png
原文地址:https://www.cnblogs.com/amberbar/p/11711024.html