java命令去执行代码 底层是怎么样的一个流程呢?

java命令去执行代码  底层是怎么样的一个流程呢?

 

winow 系统

首先 java.exe  运行  ---》 创建java虚拟机(c++执行) -->创建引导类加载器(c++执行)-->
0   c++ 开始执行java代码

-----------java代码开始------------
1   启动程序调用  创建jvm启动器 
2   启动程序launcher类  继续加载其他类加载器 其中加载器有
a  bootstrapClassLoad  b  extClassLoad  c appClassLoad d  自定义的类加载器
3  调用classLoader.loadClass 去加载要运行的类
4  加载完成jvm会执行类里面的main方法入口
5 c++发起调用  main()
6  java执行结束  jvm销毁

 

 

其中loadClass的类加载过程
1  加载   在磁盘上抄袭并通过io读入字节码文件  使用到类才会加载   比如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的
java.lang.Class对象,作为方法区这个类的各种数据的访问入口
2  验证   校验字节码文件的正确性
3  准备  给类的静态变量分配内存,并赋予默认值
4  解析  将符号引用替换为直接引用,该阶段会把一些静态方法(符号引用,比如
main()方法)替换为指向数据所存内存的指针或句柄等(直接引用),这是所谓的静态链接过程(类加载期间完成),动态链接是在程序运行期间完成的将符号引用替换为直接引用,下节课会讲到动态链接
5  初始化    对类的静态变量初始化为指定的值,执行静态代码块

 

 

怎么样 是不是学废了呢
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值