1. 程式人生 > 其它 >java程式碼的執行過程

java程式碼的執行過程

https://www.cnblogs.com/mylpy/p/15315101.html

一、Java程式從原始檔建立到程式執行要經過兩大步驟:

1、編譯期:編譯器把 .java 原始碼檔案編譯成 .class 位元組碼檔案

2、執行期:Java類載入器將 .class 位元組碼檔案載入到記憶體,在 JVM 中進行解釋並生成可執行程式碼。

編譯期
建立完原始檔之後,程式先要被 JVM中 的 Java 編譯器進行編譯為 .class 檔案。Java 編譯一個類時,如果這個類所依賴的類還沒有被編譯,編譯器會自動的先編譯這個所依賴的類,然後引用。如果 Java 編譯器在指定的目錄下找不到該類所依賴的類的 .class 檔案或者 .java 原始檔,就會報 “Cant found sysbol” 的異常錯誤。

編譯後的位元組碼檔案格式主要分為兩部分:常量池和方法位元組碼。常量池記錄的是程式碼出現過的(常量、類名、成員變數等)以及符號引用(類引用、方法引用,成員變數引用等);方法位元組碼中放的是各個方法的位元組碼。

執行期
Java 類執行的過程大概分為:類的載入和類的執行。需要說明的一點的是:JVM 並不是在執行時就會把所有使用到的類都載入到記憶體中,JVM主要在程式第一次執行時主動使用類的時候,才會立即去載入。

在 Java 中,JVM可以理解的程式碼就叫做位元組碼(即副檔名為 .class 的檔案),它不面向任何特定的處理器,只面向虛擬機器。Java 語言通過位元組碼的方式,在一定程度上解決了傳統解釋型語言執行效率低的問題,同時又保留了解釋型語言可移植的特點。所以 Java 程式執行時比較高效,而且,由於位元組碼並不針對一種特定的機器,因此,Java程式無須重新編譯便可在多種不同作業系統的計算機上執行。