Java語言中的常見錯誤
導語:Java語言雖然功能強大,使用方便、靈活,但是要學好、用好Java語言並不容易。下面就由小編為大家介紹一下Java語言中的常見錯誤,歡迎大家閲讀!
1編譯錯誤
它是指在編寫程序時,輸入錯誤的關鍵字或者標識符、遺漏標點符號及賦值時數據類型不匹配等錯誤。
大小寫字母混淆:Java語言是嚴格區分大小寫的計算機編程語言。類、方法、變量的名稱必須前後完全一致,否則將出現無法解析符號的錯誤。
使用末聲明的變量:在有些高級語言中,變量不需要聲明,就可以直接使用。而Java語言規定在使用任何變量前必須先聲明該變量的類型。如果使用末聲明的變量,編譯程序時會出現無法解析符號的錯誤。(cannot resolve symbol)
使用末初始化的變量:雖然聲明瞭變量,但是在末賦初值前就進行計算或者打印輸出等非賦值操作。這種情況下,會顯示變量可能末被初始化的錯誤提示信息(might mot have been initialized)。
語句後面遺漏分號:Java語言規定每條語句的末尾必須有分號,也就是説分號是兩條語句之間的分隔點。如果某條語句的分號沒有輸入,則程序編譯時就會出現錯誤。在一般情況下,錯誤提示會正確指出程序中缺少分號的位置。但是如果語句比較複雜,錯誤提示指出的位置可能並不是實際缺少分號的位置,編程者必須仔細查看程序,自行找出錯誤的位置。
數據類型與變量類型不符:當數據類型與變量類型不符時,如果Java語言可以自行轉換的話,則不會給出錯誤信息,但是運行結果將很可能與編程者意願不符。如果Java語言不可以自行轉換的話,則會顯示錯誤。
小括號不配對:小括號左右個數不等的現象經常出現在if 語句和while語句的條件表達式中。當表達式結構複雜,必須使用多層小括號時,很容易出現這類錯誤。因此,建議編程者養成先輸入一對小括號,然後再在其中輸入內容的好習慣。
2運行錯誤
它是指在Java程序執行時因非法操作或者操作失敗等產生的錯誤。這些錯誤在編譯時一般是無法發現的',產生運行錯誤時,程序會被中斷,並顯示錯誤信息。下面列出常見的運行錯誤。
數組下標越界是初學者常犯的一個錯誤。Java語言規定數組的下標由0開始到數組元素個數減1為止。(yIndexOutOfBounds Exception)
除數為零:Java語言不允許計算過程中出現除數為零的情況,因此,在編寫程序時,一定要注意計算過程中的中間值。如果出現除數為零的情況,則程序會被中斷並顯示除數為0的錯誤信息。(ArithmeticException:/by zero)
運行錯誤通常比較隱蔽,而且會造成程序中斷甚至系統死機等現象。為此Java語言提供處理這類錯誤的方法,幫助編程者避免程序中斷等現象的發生。
3邏輯錯誤
程序運行後,沒有得到預期的結果,這説明程序存在邏輯錯誤。這類錯誤從語法上來説是有效的,只是程序邏輯上存在缺陷。例如,使用的變量類型不正確、語句次序錯誤、循環變量的初值和終值不正確等。通常,邏輯錯誤不會產生錯誤提示信息,所以錯誤較難排除,需要編程者仔細地分析整個程序的運行步驟。
超出數據類型的數值範圍:在Java語言中,每種數據類型都有其數值範圍,一旦數據超出了數據類型的取值範圍,就會造成計算結果的錯誤。
將等於關係符號寫成“=”,在許多高級語言和數據表達式中,用“=”符號來表示相等的關係,而在Java語言中,該符號是賦值運算符號,“==”才是關係運算符號。在一般情況下,只要比較的數據類型不是boolean類型,Java語言可以在編譯程序的時候發現該錯誤,但是如果進行比較的兩個數據通信的類型本身就是boolean類型,Java語言可以在編譯程序的時候發現該錯誤,但是如果進行比較的兩個數據的類型本身就是boolean類型,則很難發現該錯誤,最終造成程序出現邏輯錯誤。
例如:
Boolean boo=false;
if(boo=true)tln(“yes”);
在上面的if語句中表達式,Java語言編譯系統將boo=true作為賦值表達式進行處理,也就是説先將true賦值給變量boo,然後再判斷boo的值是否為true,如果為true,則執行打印語句,否則繼續執行下面的語句。很顯然,無論變量boo之前的值是什麼,該表達式的值永遠是true,所以打印語句一定會被執行。
這種錯誤在編譯時是檢查不出來的,但運行結果往往是錯的。而且由於習慣的影響,編程者自己也很難發現。
語句體忘記加大括號:大括號在Java程序中具有非常重要的位置,當語句體的語句不止一條時,必須使用大括號,否則很容易出現錯誤。例如:下面的語句本意是要計算1+2+3+…+100的和,但是因為忘記了使用大括號將語句體括起來,所以實際上只是重複執行了sum=sum+i;語句而且進入了死循環狀態。
int sum=0,i=1;
while(i<=100)
sum=sum+I;
i++;
為了避免這類錯誤的發生,最好在任何情況下都使用大括號將語句體括起來。
-
java讀取解析xml文件實例
如何在Java中讀取解析文件呢?下面小編為大家整理了java讀取解析xml文件實例,希望能幫到大家!讀取本地的xml文件,通過DOM進行解析,DOM解析的特點就是把整個xml文件裝載入內存中,形成一顆DOM樹形結構,樹結構是方便遍歷和和操縱。DOM解析的特性就是讀取xml文件轉換為dom...
-
編寫更好的Java單元測試的7個技巧
測試是開發的一個非常重要的方面,可以在很大程度上決定一個應用程序的命運。良好的測試可以在早期捕獲導致應用程序崩潰的問題,但較差的測試往往總是導致故障和停機。雖然有三種主要類型的軟件測試:單元測試,功能測試和集成測試,但是在這篇博文中,我們將討論開發人員...
-
Java中嵌入式MySQL的使用方法介紹
這篇文件主要介紹在Java中嵌入式MySQL的使用,對於一些的應用項目,提供安裝版的Mysql,Oracle是必須的工作。但是有時候如果是一個小的工具,可安裝或者移植性比較強的小軟件。再去安裝數據庫可能就比較麻煩了。其實MySQL也有嵌入式的,不需要安裝,在使用的過程中,會自動...
-
關於java如何配置MyEclipse Maven環境具體方法
雖然我的大部分項目已經遷到Idea上去了,但是在寫部分小的測試程序的時候還是習慣性的會點開MyEclipse。之前使用第三方庫的時候我會習慣的下載jar包,然後buildpath導入,但是在idea中貌似通過配置maven依賴更方便,於是我在MyEclipse中也想使用來導入依賴,在嘗試的過...