1:当执行一个类文件时:是通过类加载器,把类加载到内存中
2:类加载器分为:
1:引导类加载器:负责加载jre的lib目录下的核心类库,比如rt.jar
2:扩展类加载器: 负责加载jre的lib目录下的ext扩展目录下的jar包
3:应用程序加载器 :负责加载classPath下的类,主要是自己创建的那些类
test.java编译成test.class文件,当执行test类时
1:先通过应用程序类加载器寻找是否加载过该目标类,加载过直接使用,如果没有加载过,委托扩展类加载器加载
2:委托扩展类加载器寻找是否加载过该目标类,加载过直接使用,如果没有加载过,委托引导类加载器加载
3:引导类加载器寻找是否加载过该目标类,加载过直接使用,如果没有加载过,最后交给应用程序类加载器
这就是双亲委派机制,
加载一个类时, 自己类加载器先寻找是否加载过,找不到。先委托父类寻找该目标类,找不到,在委托上层父类加载器寻找目标,如果都找不到目标,则自己加载该类