在定义类中的方法时,如果在后面加上分号";",编译和执行都不会受影响,如下面代码中的class A中的print方法,无论有没有分号结果都是一样的,请问这是为什么?分号在这里起什么作用?请高手们帮忙解答下,谢谢!class A{
    int x;
    public A(int x){
        this.print(x) ;
    }
    public  void print(int x){
        System.out.println("x="+x);
    };

    
}
public class Test1{
    public static void main(String args[]){
        A a = new A(10) ;
    }
}

解决方案 »

  1.   

    ; 是多余的. 
    与下面的类似:  
    int a=5;;;    后两个都是多余的.
      

  2.   

    用javap看的结果是一样的(虽然我看不懂),所以没区别:public class Test {
    public void f() {
    }
    ;
    }
    D:\>java Test.java
    D:\>javap -c Test
    Compiled from "Test.java"
    public class Test extends java.lang.Object{
    public Test();
      Code:
       0:   aload_0
       1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
       4:   returnpublic void f();
      Code:
       0:   return}public class Test {
    public void f() {
    }
    }D:\>java Test.java
    D:\>javap -c Test
    Compiled from "Test.java"
    public class Test extends java.lang.Object{
    public Test();
      Code:
       0:   aload_0
       1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
       4:   returnpublic void f();
      Code:
       0:   return}
      

  3.   

    也就是说无论加与不加都不会影响java程序的编译和运行?我好像有点跟匿名内部类搞混了。