jvm之类加载器

jvm类加载器

jvm之类加载器_第1张图片

  • jvm自带的类加载器三种。
    1. 启动类加载器,由C++实现。负责加载$JAVA_HOME/jre/lib/rt.jar包。
    2. 扩展类加载器,由JAVA实现。负责加载$JAVA_HOME/jre/lib/ext/*.jar包,如javax包下的类。
    3. 应用类加载器,由JAVA实现。负责加载当前应用classpath下的包,我们编写的类文件由其负责加载。

  • 非jvm自带的类加载器。用户自定义类加载器。

  • 类加载器的双亲委派机制。
    当类加载器收到请求去加载某个类时,它首先不会自己去尝试加载这个类,而是将这个请求委托给父类去完成,每一层的类加载器都是如此。只有当父加载器在它的加载路径下没有找到所需的Class文件时,子加载器才会尝试自己去加载。好处是对java自带的类的保护,比如我们自定义了一个java.lang.String,但加载的还是java自带的String类。

你可能感兴趣的:(java基础,大数据)