1. 程式人生 > >JAVA的編譯時錯誤和執行時錯誤

JAVA的編譯時錯誤和執行時錯誤

1. 要區分編譯時錯誤和執行時錯誤,就應該先明白什麼是編譯?什麼是執行?
首先,先看一下這張圖:
這裡寫圖片描述

編譯期就是將我們寫的java原始碼交給編譯器執行的過程,起翻譯的作用,該過程主要對java原始碼的語法進行檢查,如果沒有語法錯誤,就將原始碼編譯成位元組碼檔案(即.class檔案);
執行期則是將位元組碼檔案(.class檔案)載入到記憶體中交給java虛擬機器執行,直到程式執行結束的過程,該過程主要對程式的邏輯錯誤進行檢查,如果沒有邏輯錯誤,程式的功能得到實現,輸出結果。
2. 編譯期和執行期的記憶體分配區別
①編譯期只是在程式的位元組碼檔案中產生一些控制程式執行時分配記憶體的指令

,僅僅是知道記憶體分配的大小以及存放的位置,不做具體的分配操作
②執行期才是對記憶體真正的分配,確定程式分配記憶體的大小,以及這些變數該存放記憶體的位置
3. 在eclipse開發java專案時,怎麼區分編譯錯誤和執行錯誤?
①編譯錯誤一般指語法錯誤或者很明顯的邏輯錯誤。
如:缺少分號,少寫括號,關鍵字書寫錯誤等, 在eclipse往往會畫紅線。
②執行錯誤是在沒有編譯錯誤的基礎上執行後產生的邏輯錯誤。
如:空指標異常,除數為0,越界訪問等,一般會丟擲異常。
4.例子
下面程式,編輯執行,結果為()

public class Test{
           public
void main(String[] args){ System.out.println("Hello world"); } }

結果:編譯無錯誤,但執行時產生異常。