黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Java常見錯誤列表


Java常見錯誤列表:
        ·找不到符號(symbol)
        ·類X是public的,應(yīng)該被聲明在名為X.java的文件中
        ·缺失類、接口或枚舉類型
        ·缺失X
        ·缺失標識符
        ·非法的表達式開頭
        ·類型不兼容
        ·非法的方法聲明;需要返回類型
        ·數(shù)組越界(java.lang.ArrayIndexOutOfBoundsException)
        ·字符越界(java.lang.StringIndexOutOfBoundsException)
        ·類Y中的方法X參數(shù)不匹配
        ·缺少return語句
        ·精度損失
        ·在解析時到達了文件結(jié)尾
        ·執(zhí)行不到的語句

 ·變量沒被初始化

 1. 找不到符號(symbol)
        當你在代碼中引用一個沒有聲明的變量時一般會報這個錯誤。考慮下面的例子:
        01
        public class Test {
        02
            public static void main(String[] args) {
       03
                int a = 3;
        04
                int b = 4;
        05
               int c = 20;
        06
      
        07
                average = (a + b + c)/5.0;
        08
                System.out.println(average);
        09
            }
        10
        }

        1 error found:
        File: Test.java  


 

        Error: Test.java:7: cannot find
        symbol
        symbol  : variable average
        location: class Test

 

   在上面的例子中,變量average沒有被聲明——也就是說你需要告訴編譯器average的類型是什么,例如:

      1
        double average = (a +b + c)/5.0;
         此外,當你在代碼中引用一個方法但沒有在方法名后加上括號時也會報這個錯誤,加上括號用以表明引用的是個函數(shù),即使當函數(shù)沒有參數(shù)時也不能省略括號。例如:
        1
        public class Test {
        2
            public static void main(String[] args) {
        3
                my_method;
        4
            }
        5
  
        6
            public static void my_method() {
         7
                System.out.println("Hello, world!");
        8
            }
        9
        }

        1 error found:
        File: Test.java  


 

      Error: Test.java:7: cannot find
        symbol
        symbol  : variable my_method
        location: class Test
        在上面的例子中,編譯器在main方法中查找名為my_method的變量,實際上,你是想調(diào)用一個叫做my_method的方法:
        1
        public class Test {
        2
                public static void main(String[] args) {
        3
                    my_method();
        4
                }
        5
  
        6
                public static void my_method() {
        7
                    System.out.println("Hello, world!");
        8
                }
        9
        }

        第三種情況,如果你忘記導入你所使用的包時也會出現(xiàn)這個錯誤。例如,考慮下面這個從用戶那里讀入一個整數(shù)的例子:
        1
        public class Test {    
        2
            public static void main(String[] args) {
        3
                Scanner console = new Scanner(System.in);
        4
                int n = console.nextInt();
        5
            }
        6
        }

        2 errors found:
             File:Test.java  

 


 

             Error: cannotfind
        symbol
               symbol:  class Scanner
               location:class Test
            File:Test.java  

 


 

             Error: cannotfind
        symbol
               symbol:  class Scanner
               location:class Test
        這里的問題是程序必須導入java.util.Scanner(或者java.util.)。否則,編譯器不知道Scanner是什么類型。當你在處理文件的輸入/輸出時,如果忘記導入java.util.Arrays或者java.io.,也會遇到這個錯誤。
        1
        import java.util.*; // or --> import java.util.Scanner;   
        2
        public class Test {    
        3
            public static void main(String[] args) {
        4
                Scanner console = new Scanner(System.in);
        5
                int n = console.nextInt();
        6
            }
        7
        }
        最后,當我們在使用大小敏感的變量名時也會遇到這個錯誤。Java中所有的標識符(identifiers)都是區(qū)分大小寫的。這就意味著,如果我們聲明了一個名為average的變量,然后在后面用Average引用它時,編譯器就會報找不到Average這個變量的錯誤。

        2. 類X是public的,應(yīng)該被聲明在名為X.java的文件中
        在一個Java程序中,如果類名與文件名不匹配時會報這個錯。例如,下面這個Foo.java程序:
        1
        public class Bar {    
        2
             public static void main(String[] args) {
        3
                System.out.println("Hello, world!");
        4 
            }
        5
        }

        1 error found:
        File: Foo.java  

 


 

        Error: class Bar is public, should bedeclared in
        a file
        named Bar.java

        由于Foo與Bar不匹配,這段代碼會編譯失敗。修改這個錯誤,我們既可以修改類名,也可以修改文件名。
        3. 缺失類、接口或枚舉類型
        這個錯誤是一種與大括號有關(guān)的錯誤,一般來說,這個錯誤發(fā)生在程序最后有太多大括號時;例如:
        1
        public class Test {    
        2
            public static void main(String[] args) {
        3
                System.out.println("Hello!");
        4
            }
        5
        }
        6
        }


        1 error found:
         File: Test.java  

 


 

        Error: class, interface, or enumexpected
        一種找出這種錯誤的方式是正確的縮進代碼(因為這種錯誤總是與大括號有關(guān))。我們可以在Dr.java中按組合鍵CTRL-A(去選中這個程序),然后按TAB鍵(來正確地縮減代碼)。在我們上面的實例代碼中,程序的最后有兩個大括號,這在一個合法的程序中是不可能出現(xiàn)的。因此,我們僅僅去掉一個大括號就能夠讓程序正確的編譯。
        1
        public class Test {    
        2
               public static void main(String[] args) {
        3
                   System.out.println("Hello!");
        4
               }
        5
           }

        4.缺失X
        當編譯器檢查到代碼中缺失字符時會出現(xiàn)”缺失X”這種形式的錯誤,錯誤信息會告訴你在哪行缺失了哪個字符,考慮下面的程序:

        1
        public class Test
        2
            public static void main(String[] args) {
        3
                my_method();
        4
            }
        5
  
        6
            public static void my_method() {
        7
                System.out.println("Hello, world!")    
        8
            }
        9
        }


        2 errors found:
        File: Test.java  

 


 

        Error: Test.java:1: '{'
        expected
        File:.java  

 


 

        Error: Test.java:7: ';'
        expected
        這個錯誤信息告訴你在第1行缺失了一個大括號,在第7行缺失了一個分號。解決這種錯誤很簡單——只需把缺失的字符在正確的位置上補上即可。
        1
        public class Test {
        2
               public static void main(String[] args) {
        3
                   my_method();
        4
               }
        5
     
        6
               public static void my_method() {
         7  
                   System.out.println("Hello, world!");  
         8
               }
         9
           }

        5.缺失標識符
        當把代碼寫在了方法外時會出現(xiàn)這個錯誤;這種錯誤一般也是由大括號引起的。考慮下面的例子:

      1
      public class Test {
      2
             System.out.println("Hello!");
      3
     
      4
             public static void main(String[] args) {
      5
                 System.out.println("World!");
      6
              }
      7
         }

      2 errors found:
      File: Test.java  

 


 

      Error:expected
      File: Test.java  

 


 

      Error: illegal start of type
        在這種情況下,很明顯第一個打印語句應(yīng)該放在main方法里面,這樣才能通過編譯。然而,當我們的程序中有多于一個方法并且大括號也不匹配時,這種“缺失標識符”的錯誤就不容易被發(fā)現(xiàn)了:
      1
      public class Test {    
      2
              public static void main(String[] args) {
      3
                  System.out.println("Hello!");}
      4
                  System.out.println("World!");
      5
              }
      6
          }

      3 errors found:
      File: Test.java  

 


 

      Error:expected
      File: Test.java  

 


 

      Error: illegal start of type
      File: Test.java  

 


 

      Error: class, interface, or enumexpected 
        在上面的代碼中多了一個大括號,但是因為代碼沒有正確的縮進,所以很難找出這個錯誤。這樣使得main方法在打印“hello”語句后就結(jié)束了,這樣打印“world”的語句就變成方法以外的代碼了。修改這個錯誤的方式十分簡單——只需要把第三行的大括號刪除就可以了:
      1
      public class Test {    
      2
          public static void main(String[] args) {
      3
              System.out.println("Hello!");
      4
              System.out.println("World!");
      5
           }
      6
      }

        6.非法的表達式開頭
        當編譯器遇到一條不合法的語句時會報“非法的表達式開頭”這種錯誤。考慮下面的例子:

      1
      public class Test {
      2
          public static void main(String[] args) {
      3
              my_method();
      4
  
      5
  
      6
          public static void my_method() {
      7
              System.out.println("Hello, world!");
      8
          }
      9

        }
      5 errors found:
      File: Test.java  

 


 

      Error: Test.java:6: illegal start ofexpression
      File: Test.java  

 


 

      Error: Test.java:6: illegal start ofexpression
      File: Test.java  

 


 

      Error: Test.java:6: ';'
      expected
      File: Test.java  

 


 

      Error: Test.java:6: ';'
      expected
      File: Test.java  

 


 

      Error: Test.java:9: reached end of file
      while
      parsing


        這里,缺少了一個關(guān)閉main方法大括號。由于main方法沒有被關(guān)閉,編譯器把調(diào)用my_method方法之后的代碼也當作main方法的一部分。然而,后面的代碼是public static void my_method() {,很顯然,這在一個方法內(nèi)不合法。
       “非法的表達式開頭”這種錯誤不如我們上面提到的“××缺失”這種信息有幫助。對于這種錯誤(以及很多其他一些錯誤),非常有必要檢查一下出錯代碼前面的那幾行。對于上面那個例子,我們只需要在編譯器報錯的那行前面加上大括號關(guān)閉main方法就可以了。重新編譯,所有的錯誤都解決了。
      1
      public class Test {
      2
          public static void main(String[] args) {
      3
              my_method();
      4
          }  
      5
  
      6
          public static void my_method() {
      7
              System.out.println("Hello, world!");
      8
          }
      9
      }

        7.類型不兼容
        當你的程序在處理類型相關(guān)的問題時會報這個錯。我們可以對一些類型進行相互轉(zhuǎn)化,例如,你可以輕松把一個char類型轉(zhuǎn)為int類型,反之亦然;你也可以通過向上轉(zhuǎn)型把一個double類型轉(zhuǎn)為int類型。但是,你不能把基本類型與像String這樣的對象進行相互轉(zhuǎn)換。例如:

      1
      public class Test {
      2
          public static void main(String[] args) {
      3
               int num = "Hello, world!";
      4
          }
      5
      }

      1 error found:
      File: Test.java  

 


 

      Error: Test.java:3: incompatible types
      found   : java.lang.String
      required: int
        一般來說,你不能像解決其他一些錯誤一樣解決這種錯誤。這不是一種語法錯誤,而是一種關(guān)于類型的邏輯錯誤。把一個String類型轉(zhuǎn)為int類型一般來說都是毫無意義。但是,在一些應(yīng)用中,你可能需要把String類型轉(zhuǎn)為int類型,比如,當這個字符串代碼一個數(shù)字時:
      1
       public class Test {
      2
          public static void main(String[] args) {
      3
              int num = "500";
      4
          }
      5
      }

      1 error found:
      File: Test.java  

 


 

      Error: Test.java:3: incompatible types
      found   : java.lang.String
      required: int
        解決這種錯誤一般采用這樣的方法:借助于Java中像Integer這樣的類,這些基本類型的包裝類中有能接受字符串類型的參數(shù)的方法,這樣就把字符串類型轉(zhuǎn)為整型了:
      1
       public class Test {
      2
              public static void main(String[] args) {
      3
                  int num = Integer.parseInt("500");
      4
              }
      5
          }

        但是,這種解決“類型不兼容”錯誤的方案是一種例外,不是什么規(guī)則,因為這種錯誤一般來自于邏輯上的錯誤。

        8.非法的方法聲明;需要返回類型
        在Java中的每個方法都要求明確的聲明返回類型,即使這個方法什么也不返回,也要用void進行標識,就像main方法那樣。當一個方法沒有聲明返回類型時,會出現(xiàn)這種錯誤:
      01
      public class Test {
      02
              public static void main(String[] args) {
      03

 

上一篇:JDK、J2EE、J2SE、J2ME之間的區(qū)別
下一篇:JAVA程序員面試常見問題

開班信息

主站蜘蛛池模板: 久艹在线视频 | 一边脱一边摸一边揉免费 | 在线播放中文字幕 | 国产欧美日韩视频怡春院 | 日韩三级免费 | 欧美精品一区二区三区视频 | 波多野结衣视频免费在线观看 | 欧美一区视频 | 欧美成人午夜剧场 | 欧美黑白配性xxxxx | 国产三级国产精品国产普男人 | 婷婷黄色网 | 黄色黑丝网站 | 日韩不卡一区二区 | h视频在线免费观看 | 中文字幕成人免费高清在线 | a极毛片 | 欧美亚洲另类在线 | 天天爱夜夜爱 | 国产成人精品免费视频大全办公室 | 成人国产在线观看 | 国产免费观看嫩草影院 | 韩国伦理中文 | 欧美性video精品 | 天天操天天摸天天爽 | 亚洲精品中文字幕字幕 | 91久操| 欧美在线观看免费一区视频 | 黄色视品 | 东京加勒比中文字幕波多野结衣 | 欧美大胆性生话 | 在线视频国产一区 | 一个人看的免费视频www免费 | 欧美精品成人一区二区在线观看 | 青草热久精品视频在线观看 | 91精品一区二区三区在线 | 黄色片国产 | 91欧美| 精品在线免费播放 | 亚洲丶国产丶欧美一区二区三区 | 在线播放黄色网址 |