随笔

作者: 层林尽染lr | 来源:发表于2019-05-08 17:13 被阅读0次

    类加载简单说就是将编写的类加载到jvm中,主要分为五个过程:
    1.加载
    将.class文件以二进制的方式加载到内存中,并且声称一个class对象,提供访问类数据的接口。

    2.验证
    就是判断类的二进制流是不是符合虚拟机的格式。

    3.准备
    给类变量设置初始值,并且分配内存。

    4.解析
    将常量池中的符号引用变成直接引用。

    5.初始化
    给静态变量赋值,执行静态代码块。

    双亲委派机制:

      类加载有双亲加载,简单说就是每单需要加载类时,子加载器都会让父类先加载,最终由最高层级的启动类加载器来加载,当父加载器找不到类时,才会抛给子类,这个是防止出现加载混乱,因为当自己编写一个跟系统一样的类的时候,父类默认会用系统的,而不至于出现不知道加载那一个的情况。
      当然,这种模式也可以打破,要打破这种模式,需要自定义类加载器,并重写findclass和loadclass方法,这里最重要的是findclass方法,因为默认都是交个父类执行,这里重写成由当前类来找。关于为什么要打破这种机制,是因为默认走父类的逻辑,但是有些类是要用三方厂商,此时就需要打破这种机制。

    相关文章

      网友评论

          本文标题:随笔

          本文链接:https://www.haomeiwen.com/subject/rnrvoqtx.html