Java編譯出錯和運行出錯區別

要區分編譯時錯誤和運行時錯誤,得先理解什麼是編譯什麼是運行

看下圖:java

編譯期就是將咱們寫的java源代碼交給編譯器執行的過程, 起翻譯的做用. 主要是對java源代碼的語法進行檢查, 若是沒有語法錯誤, 就將源代碼編譯成字節碼文件(.class文件)spa

運行期則是將字節碼文件(.class)加載到內存中交給java虛擬機執行, 直到程序執行結束的過程, 該過程主要是對程序的邏輯錯誤進行檢查, 若是沒有邏輯錯誤, 程序的功能就能夠實現, 輸出結果翻譯

編譯期和運行期 的內存分配區別

  1. 編譯期只是在程序的字節碼文件中產生一些控制程序運行時分配內存的指令, 僅僅是知道內存分配的大小以及存放的位置, 不作具體的分配操做
  2. 運行期是對內存的真正的分配, 肯定程序分配內存的大小, 以及這些變量該存放內存的位置

常見的錯誤

編譯錯誤通常指語法錯誤或者很明顯的邏輯錯誤, 如 : 缺乏分號, 少寫括號, 關鍵字書寫錯誤等...
運行錯誤是在沒有編譯錯誤的基礎上運行後產生的邏輯錯誤, 如 : 空指針異常, 除數爲0 , 越界訪問等...指針

相關文章
相關標籤/搜索