欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java的編譯時錯誤和運(yùn)行時錯誤問題

 更新時間:2023年04月03日 14:15:57   作者:Ning靜致遠(yuǎn)  
這篇文章主要介紹了Java的編譯時錯誤和運(yùn)行時錯誤問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java編譯時錯誤和運(yùn)行時錯誤

1. 要區(qū)分編譯時錯誤和運(yùn)行時錯誤,就應(yīng)該先明白什么是編譯?什么是運(yùn)行?

首先,先看一下這張圖:

編譯期就是將我們寫的java源代碼交給編譯器執(zhí)行的過程,起翻譯的作用,該過程主要對java源代碼的語法進(jìn)行檢查,如果沒有語法錯誤,就將源代碼編譯成字節(jié)碼文件(即.class文件);

運(yùn)行期則是將字節(jié)碼文件(.class文件)加載到內(nèi)存中交給java虛擬機(jī)執(zhí)行,直到程序執(zhí)行結(jié)束的過程,該過程主要對程序的邏輯錯誤進(jìn)行檢查,如果沒有邏輯錯誤,程序的功能得到實(shí)現(xiàn),輸出結(jié)果。 

2. 編譯期和運(yùn)行期的內(nèi)存分配區(qū)別。

①編譯期只是在程序的字節(jié)碼文件中產(chǎn)生一些控制程序運(yùn)行時分配內(nèi)存的指令,僅僅是知道內(nèi)存分配的大小以及存放的位置,不做具體的分配操作。

②運(yùn)行期才是對內(nèi)存真正的分配,確定程序分配內(nèi)存的大小,以及這些變量該存放內(nèi)存的位置。 

3. 在eclipse開發(fā)java項(xiàng)目時,怎么區(qū)分編譯錯誤和運(yùn)行錯誤?

①編譯錯誤一般指語法錯誤或者很明顯的邏輯錯誤。

如:缺少分號,少寫括號,關(guān)鍵字書寫錯誤等, 在eclipse往往會畫紅線。

②運(yùn)行錯誤是在沒有編譯錯誤的基礎(chǔ)上運(yùn)行后產(chǎn)生的邏輯錯誤。

如:空指針異常,除數(shù)為0,越界訪問等,一般會拋出異常。 

4.例子

下面程序,編輯運(yùn)行,結(jié)果為()

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

結(jié)果:編譯無錯誤,但運(yùn)行時產(chǎn)生異常。

編譯錯誤和運(yùn)行錯誤的區(qū)別

編譯期

在程序的字節(jié)碼文件中產(chǎn)生一些控制程序運(yùn)行時分配內(nèi)存的指令, 僅僅是知道內(nèi)存分配的大小以及存放的位置, 不做具體的分配操作

運(yùn)行期

是對內(nèi)存的真正的分配, 確定程序分配內(nèi)存的大小, 以及這些變量該存放內(nèi)存的位置

常見的錯誤

編譯錯誤一般指語法錯誤或者很明顯的邏輯錯誤, 如 : 缺少分號, 少寫括號, 關(guān)鍵字書寫錯誤等

運(yùn)行錯誤是在沒有編譯錯誤的基礎(chǔ)上運(yùn)行后產(chǎn)生的邏輯錯誤, 如 : 空指針異常, 除數(shù)為0 , 越界訪問等 

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mybatis框架入門學(xué)習(xí)教程

    mybatis框架入門學(xué)習(xí)教程

    MyBatis是一個支持普通SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架。這篇文章主要介紹了mybatis框架入門學(xué)習(xí)教程,需要的朋友可以參考下
    2017-02-02
  • 詳解java封裝繼承多態(tài)

    詳解java封裝繼承多態(tài)

    這篇文章主要介紹了java封裝繼承多態(tài),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java8 HashMap遍歷方式性能探討

    Java8 HashMap遍歷方式性能探討

    JDK8之前,可以使用keySet或者entrySet來遍歷HashMap,JDK8中引入了map.foreach來進(jìn)行遍歷
    2021-09-09
  • maven依賴的version聲明控制方式

    maven依賴的version聲明控制方式

    這篇文章主要介紹了maven依賴的version聲明控制方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • springboot實(shí)現(xiàn)注冊加密與登錄解密功能(demo)

    springboot實(shí)現(xiàn)注冊加密與登錄解密功能(demo)

    這篇文章主要介紹了springboot實(shí)現(xiàn)注冊的加密與登錄的解密功能,本文通過demo實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 關(guān)于replaceFirst使用時的注意事項(xiàng)

    關(guān)于replaceFirst使用時的注意事項(xiàng)

    這篇文章主要介紹了關(guān)于replaceFirst使用時的注意事項(xiàng),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java中的maven和gradle的比較與使用詳解

    Java中的maven和gradle的比較與使用詳解

    這篇文章主要介紹了maven和gradle的比較與使用,Maven使用基于XML的配置,Gradle采用了領(lǐng)域特定語言Groovy的配置,在Maven中要引入一個依賴,需要的朋友可以參考下
    2022-04-04
  • SpringBoot MDC全鏈路調(diào)用日志跟蹤實(shí)現(xiàn)詳解

    SpringBoot MDC全鏈路調(diào)用日志跟蹤實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了SpringBoot MDC全鏈路調(diào)用日志跟蹤實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Java中兩個字符串進(jìn)行大小比較的方法

    Java中兩個字符串進(jìn)行大小比較的方法

    這篇文章主要介紹了Java中兩個字符串進(jìn)行大小比較,符串是否相等比較,只能使用equals()方法,不能使用“==”,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Java 基于AQS實(shí)現(xiàn)一個同步器

    Java 基于AQS實(shí)現(xiàn)一個同步器

    這篇文章主要介紹了如何基于AQS實(shí)現(xiàn)一個同步器,幫助大家更好的理解和學(xué)習(xí)Java并發(fā),感興趣的朋友可以了解下
    2020-09-09

最新評論