zoukankan      html  css  js  c++  java
  • JVM --字节码的加载

    ClassLoader类加载器

      常见的类加载器有BootStrapClassLoader<-ExtClassLoader<-AppClassLoader<-用户ClassLoader

    BootStrapClassLoader:加载Java自带的核心类;

    ExtClassLoader加载在/jre/lib/ext目录下的jar包,同样用户可以将jar放在该目录下。

    AppClassLoader 加载classpath下面的内容,

    加载过程:

    读取文件并加载,首先申请父类的加载器进行加载,如果父类加载器无法加载,再由子类来加载,最终找不到该类,那么将会抛出ClassNotFoundException;

    第二步,链接。对已经加载的字节码进行解析、校验,看是不是符合一定的规范,否则抛出ClassNotFoundError.然后实现内存的分配。

    第三步,初始化。调用构造函数,对静态变量、static块初始化。

    值得注意的是,在类加载的过程中,会阻塞多个线程。

    其实ClassLoader本身就是Java类,而这些类是由JVM内核来实现加载。

  • 相关阅读:
    Jsuop Whitelist
    Conductor
    nats
    jersey
    Metrics
    OpenResty api 网关
    DHCP、DHCP Snooping及DHCP relay工作原理入门及实践(转)
    使用派生镜像(qcow2)
    websockify文档
    noVNC使用——访问多台vnc
  • 原文地址:https://www.cnblogs.com/plxx/p/4337568.html
Copyright © 2011-2022 走看看