平時開發的項目,有的是打成一個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方法開始執行里面的代碼。
基本的流程就是:編譯-->加載-->運行。如下圖: