平时开发的项目,有的是打成一个war包,放到Tomcat这样的容器里运行。或者是打成一个jar包,通过JAVA -jar 的方式去运行。大家有没有想过我们的项目是如何运行的呢?
首先编译器会把我们写的是一个个的类对象,如user.java,role.java等进行编译,编译成user.class,role.class等这样的字节码文件,这样的文件才是可以被运行的文件。
接着就是JVM会把编译好的字节码对象加载到内存。JVM的英文全称是Java Virtual machine,也就是Java虚拟机,我们文章的主角。Java虚拟机就是一个虚拟的计算机,我们的项目就是在这上面运行的。有了它,我们Java也就有了“一次编译,到处运行”的能力了。
接着,最后一步,JVM就会通过字节码执行引擎,执行加载的字节码文件了。如代码中有一个main方法,JVM就会从main方法开始执行里面的代码。
基本的流程就是:编译-->加载-->运行。如下图: