看下圖:java
編譯期就是將咱們寫的java源代碼交給編譯器執行的過程, 起翻譯的做用. 主要是對java源代碼的語法進行檢查, 若是沒有語法錯誤, 就將源代碼編譯成字節碼文件(.class文件)spa
運行期則是將字節碼文件(.class)加載到內存中交給java虛擬機執行, 直到程序執行結束的過程, 該過程主要是對程序的邏輯錯誤進行檢查, 若是沒有邏輯錯誤, 程序的功能就能夠實現, 輸出結果翻譯
編譯錯誤通常指語法錯誤或者很明顯的邏輯錯誤, 如 : 缺乏分號, 少寫括號, 關鍵字書寫錯誤等...
運行錯誤是在沒有編譯錯誤的基礎上運行後產生的邏輯錯誤, 如 : 空指針異常, 除數爲0 , 越界訪問等...指針