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

java类加载

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

java类加载

java类加载的过程
  • 执行代码的大体流程如下
    • 加载类的过程有以下几个步骤

执行代码的大体流程如下

1.开始执行代码
2.java.exe调用底层的jvm.dll文件创建java虚拟机,这一步是C++来实现的
3.创建一个引导类加载器实例,这个加载类实例是C++来创建的
4.C++调用java代码创建JVM启动器Launcher,此类由引导类加载器加载,使用Launcher来创建其它的类加载器
5.获取运行类自己的加载器,如果是我们自己写的类一般是AppClassLoader
6.加载器调用loadClass方法,加载要运行的类
7.加载完成后,jvm会调用main方法
8.C++发起调用

加载类的过程有以下几个步骤

1.加载:通过io流读入字节码文件,在使用到类的时候才进行加载,比如调用 new main方法等,在加载阶段都会生成代表这个类的Class对象,放到方法区,作为这个类各种数据访问的入口
2.验证:校验字节码文件的正确性
3.准备:给类的静态变量分配内存,并赋默认值
4.解析:将符号引用替换为直接引用,只作用在静态方法上,也就是静态链接过程。动态链接,是程序运行期间符号引用替换为直接引用
5.初始化:将静态变量初始化为指定的值,执行静态读代码块

当类被加载到方法区后,包含:运行时常量池、类型信息、字段信息、方法信息、类加载器的引用、对应class实例的引用等
类加载器的引用:这个类到类加载器的引用。
对应class实例的引用:类加载器在加载类信息放到方法区后,会创建一个对应的Class类型的对象实例放到堆中,作为开发人员访问方法区中类定义的入口和切入点

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

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

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