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"); } }
結果:編譯無錯誤,但運行時產生異常。
在程式的字節碼檔案中產生一些控製程式運行時分配記憶體的指令, 只是知道內存分配的大小以及存放的位置, 不做具體的分配操作
是對記憶體的真正的分配, 確定程式分配記憶體的大小, 以及這些變數該存放記憶體的位置
編譯錯誤一般指語法錯誤或很明顯的邏輯錯誤, 如: 缺少分號, 少寫括號, 關鍵字書寫錯誤等
執行錯誤是在沒有編譯錯誤的基礎上執行後產生的邏輯錯誤, 如: 空指標異常, 除數為0 , 越界存取等
以上是Java的編譯時錯誤和執行時間錯誤問題怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!