类加载过程---包括双亲委派模型

在这里插入图片描述
在这里插入图片描述
类加载时机:

  1. new,静态属性, 静态方法调用。
  2. 获取Class对象如People. Class
  3. 加载子类时需要提前加载父类
  4. 启动JVM,main函数所咋的类需要加载

启动类加载器是用c/c++实现的所以也叫顶级父类加载器,如果一个类的加载器是启动加载器,则返回null(因为java是面向类和对象的,所有的模块都是一个类,都需要加载器,最后只能是用其他语言完成的。)

蓝色线表示检查是否之前加载过(即从子类往父类查找),如果加载过就返回Classpath。
红色线开始尝试从父类往子类加载,知道找到能加载的启动器。若没有贼抛出异常ClassNotFoundException

双亲委派模型优点?

  1. 避免类的重复加载People. Jar
  2. .安全性String-> Boostrap ClassLoader

猜你喜欢

转载自blog.csdn.net/weixin_47198561/article/details/109214686