Bootstrap类加载器: 加载JRE/lib/rt.jar
Extension类加载器: 加载JRE/lib/ext或java.ext.dirs目录
Application类加载器:加载CLASSPATH环境变量,
类加载器工作原则:
双亲委派
假设你有一个应用需要的类叫作Test.class,首先加载这个类的请求由Application类加载器委托给它的父类加载器Extension类加载器,然后再委托给Bootstrap类加载器。Bootstrap类加载器会先看看rt.jar中有没有这个类,因为并没有这个类,所以这个请求由回到Extension类加载器,它会查看jre/lib/ext目录下有没有这个类,如果这个类被Extension类加载器找到了,那么它将被加载,而Application类加载器不会加载这个类;而如果这个类没有被Extension类加载器找到,那么再由Application类加载器从classpath中寻找
可见性:
根据可见性机制,子类加载器可以看到父类加载器加载的类,而反之则不行
单一性机制
父加载器加载过的类不能被子加载器加载第二次