java类加载过程

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

类加载器

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。根据入参决定是否进行链接。

双亲委派

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

类加载方式

  1. 隐式加载new Object()
  2. 显示加载Class.forName(String name)
04-17 03:23