- JVM的位置
- JVM的体系结构
- 类加载器
作用:加载class文件
- 虚拟机自带的加载器
- 启动类(根)加载器
- 扩展类加载器
- 应用程序加载器
EXtClassLoader \jre\lib\ext
ClassLoader.getParent().getParent();//null java文件获取不到,在rt.jar
双亲委派机制:安全
APP–>EXC—BOOT(最终执行根家加载区的)
如果BOOT加载器里面没有,就会到EXC里面找,最后到APP里面找。
package java.lang;
public class String {
public String toString() {
return "Hello";
}
public static void main(String[] args) {
String s = new String();
s.toString();
}
}
结果显示
错误: 在类 java.lang.String 中找不到 main 方法, 请将 main 方法定义为:
public static void main(String[] args)
否则 JavaFX 应用程序类必须扩展javafx.application.Application
过程:
1> 类加载器收到类加载的请求
2> 将这个请求不断向上委托给父类加载器
3> 启动加载器检查是否能够加载当前这个类,则加载结束,否则抛出异常,让子类加载器加载