zoukankan      html  css  js  c++  java
  • JVM运行、类加载的全过程

    类加载机制JVM把CLASS文件加载到内存,并对数据进行校验、解析和初始化,最终形成JVM可以直接使用的Java文件。

    加载:把class文件字节码加载到内存中,并且将这些静态数据转换成方法区中的运行时数据结构,并且在堆中创建一个对象,作为调用这些方法和属性的入口。这个过程需要类加载器。

    链接:将Java类的二进制代码加载到JVM中的过程

    (1)、验证:检查代码是否符合规范

    (2)、准备:为类变量(static)分配内存,设置初始值。

    (3)、解析:虚拟机常量池符号引用换为字节引用的过程。

    初始化:初始化阶段是实现类构造器clinit()方法的阶段,clinit()中的方法就是编译器在连接过程收集的赋值的动作。

    当类被引用的加载,类只会加载一次

    类加载机制:双亲委托机制

    双亲委托机制就是说在类加载器结构到一个加载请求的时候,它不会第一时间就考虑自己去加载这个类,它会把这个类传给它的父加载器,父加载器也是如此,不会第一时间调用自己的方法去加载,直到传递到顶层,如果顶层没有合适的加载方法那么就会反馈给下一级,如此反复,知道加载。这个机制存在的意义就是避免相同限定名的类被多次加载,确保了类的全局唯一性。

     

  • 相关阅读:
    reverse的一些做题教训&&trick
    reverse的一些常用资料
    [攻防世界
    JavaScript 常用函数 通用函数
    宝塔突然出现Internal Server Error
    centos7上用nginx部署前后端分离项目
    postgres 如何把多行数据,合并一行,返回json字符串
    文艺平衡树
    FHQ Treap 板子
    Java后台开发有哪些提升效率的插件?
  • 原文地址:https://www.cnblogs.com/tutuhome/p/10683473.html
Copyright © 2011-2022 走看看