我知道静态代码只会在类被加载的时候执行一次,对这句话我不是很理解;请看看下面的代码:public class StaticCode
{
StaticCode(int num)
{
this.num=num;
}

static
{
StaticCode code=new StaticCode(3);//请注意这一行!!!!!!!
System.out.println("Static !");
}
int num;
public static void main(String[]args)
{
System.out.println();
}
}
执行的结果是打印出来三行:Static!
我不是很解,这3行是怎么来的?

解决方案 »

  1.   

    只打印一个static!
    和一空行
    static是加载类时执行static代码块
    空行是你在main方法中打印的
    先加载类,所以先打印static后打印空行
      

  2.   

    class StaticCode{
    StaticCode(int num)
    {
    this.num=num;
    }

    static
    {
    StaticCode code=new StaticCode(3);//请注意这一行!!!!!!!
    System.out.println("Static !");
    }
    int num;
    public static void main(String[]args)
    {
    System.out.println();
    }
    }你的代码我改了一下,把前面的那个public 给删了以后才能正常运行。
    可能是我们用的JDK不一样吧!
    结是打印出来一个static 再出来一个空行