技术复习-java类加载机制

java类加载过程

  1. 装载 把class字节码加载到内存中。
  2. 连接 验证、准备、解析
  3. 初始化 类的静态变量、静态代码库进行初始化

类加载器

java中三个默认类加载器java

  1. Bootstrap ClassLoader 根加载器,加载JAVA_HOME/jre/lib下的rt.jar等核心jar
  2. Extension ClassLoader 扩展加载器,加载JAVA_HOME/jre/lib/ext下面的扩展jar
  3. App CLassLoader 加载classpath下的jar

类装载过程

ClassLoader#loadClass(String name, resolve); 1.加锁 2.是否已经被装载 3.没有被装载则寻找父类进行装载,这里是个递归 4。根据入参决定是否进行连接。安全

双亲委派

以前类装载的时候先找父加载器进行加载,依次递归,这种的行为叫作双亲委派。好处是安全,系统类优先被上层加载器加载。spa

类加载方式

  1. 隐式加载 new Object()
  2. 显示加载 Class.forName(String name)