栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JVM速通计划(简直不要太简单)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JVM速通计划(简直不要太简单)

我们都知道,一个Java程序执行流程(底层运行机制)

类加载过程: 1.含义

读取编译产生的class文件,将其转化为某种静态数据结构存储在方法区,并在堆中生成可以供用户调用的对象

2.类加载的详细过程:


验证:随着版本的发展。验证的策略会越来越完善
1.文件格式验证
2.元数据、字节码验证
3.符号引用验证
准备:

public class Test {
    private int a=1;
    static int b;
    static {
        b=1;
    }
}


源信息依然是保存在元空间中,只是常量池等存储发生了改变,存储在堆中。
这里的静态变量b在定义是会赋0值。

解析:将符号引用变为直接引用,在一个类A中,除了有A的引用,还有B的引用,在class文件中,用一段字符串表示B的引用地址,这个字符串就称为符号地址。在A的加载时,将字符串作为符号地址将B加载进虚拟机,此时就将符号地址变为直接地址。
在加载时,B可能是一个具体的实现类,也可能是一个接口,抽象类等等不具体的,在B是一个具体的实现类时直接使用B的直接引用进行解析将B加载进虚拟机。如果不是一个具体的,B可能有C和D两个实现类。

初始化:主动资源的初始化动作。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/301746.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号