系列文章目录
前言
Java 的执行流程和JVM执行的算法是常见的面试题。我们应该进行教科书的Answer.
一、Java 执行流程?
Java执行流程主要是利用程序委派机制完成
二、使用步骤
1.编译
Java 主要分为编译和运行2个阶段。
ja
java 源码分析器完成
点击complie ,主要进行编译。

类加载机制:
类加载机制
类执行机制
Java源码编译机制
类加载机制:

custom classLoader–>appclassLoad–>Extension classLoder–>Bootstrap :
通过java.lang.classloader–>loadclasspath表的类和包,LOAD jare 下的类和jar,最后下载jre 下的xbootclasspath 选项的jar.
我们来写一个java 程序验证一下,
试试成成自定义的类,加载classpth 下的包,记载jre 下的ext 和rt.jar 下的包。
代码如下(示例):
public static void main(String[] args){
Student s = new Student(23,“dqrcsc”,“20150723”);//执行完毕
s.study(5,6);
Student.getCnt();
s.run();
}
2.运行
点击运行生成run.JVM执行引擎来处理的。

我们在执行期间发生了什么呢?一般都发生在内存下JMM模型:
1.在局部变量表发送战阵,
局部变量表长度为2,slot0存放参数args,slot1存放局部变量Student s,操作数栈最大深度为5。
ew#7指令,在java堆中创建一个Student对象,并将其引用值放入栈顶。
这个需要工具跟踪。
nvokestatic #12 调用静态方法getCnt()不需要传任何参数
pop:getCnt()方法有返回值,将其出栈
aload_1:将slot1处的引用值入栈
invokevirtual #13:调用0x2222对象的run()方法,重写自父类的方法,需要动态分派,所以使用invokevirtual指令
return:main()返回,程序运行结束。
总结
链接: link.
本文详细介绍了Java程序的执行流程,包括编译和运行两个阶段,以及JVM执行的基本原理。阐述了类加载机制的过程,从自定义类加载器到系统默认加载器的工作流程,并通过具体实例演示了类加载的过程。此外,还深入分析了运行时JMM模型下的执行细节。
5万+

被折叠的 条评论
为什么被折叠?



