• JVM核心机制_类加载的全过程_java的内存分析_初始化时机。


      学习java的时间不短了,度过了是追求怎么用的阶段,我想在编程这条路上走的更踏实、更远。

    一 JVM运行的基本过程 

      核心就是类加载的过程

      jvm 将class文件中的字节码内容加载到内存当中,并对内存进行链接校验、准备、解析),然后初始化,最总形成jvm可直接使用的java类型的过程。

      

      加载:静态

      字节码========》内存当中,

      将静态的数据 ===》方法区中的 运行时数据结构,

      并 在堆中生成一个代表这个类的java.lang.Class对象 为方法区类数据的访问接口。  这个过程需要类加载器的参与。

          链接:运行中

          将java类的二进制代码合并到 jvm运行状态中的过程。

      1.验证:确保加载的类加载的信息符合规范,没有安全问题。

      2.准备:为类变量分配内存,并设置类变量初始值

      3.解析:虚拟机内常量池的符号引用替换成直接引用

      举个例子: 即 肖总 找  北京市长  =========》 1米处的肖总 找 10米处的北京市长。

      初始化:(调用类构造器)

      1.初始化阶段是调用类构造器<clinit>方法的过程,类构造器<clinit> 方法是由编译器自动收集类中所有类变量的赋值动作,和静态语句块中的语句合并产生的。

      2.当一个类初始化时,发现其父类没有被初始化则需要父类初始化。

      3.虚拟机保证一个类的<clinit>方法在多线程环境运行中被正确加锁和同步。

    ===================================》》》》》

    二类被加载过程示例。

     

      

    看文章的时候如果,对你有那么一点点的启发,记得要鼓励一下我啊,因为我是一个爱古力少年。。
  • 相关阅读:
    C语言之逻辑运算符
    iOS:实现图片的无限轮播---之使用第三方库SDCycleScrollView
    Mac 环境下svn服务器的配置
    ld: warning: directory not found for option 去掉警告的方法
    Mac怎么设置wifi热点
    如何获取AppStore软件安装包的路径
    四种卸载Mac软件的方法
    UIAlertController
    uiview关联xib
    OC学习篇之---文件的操作
  • 原文地址:https://www.cnblogs.com/xingtangxublog/p/8605688.html
Copyright © 2020-2023  润新知