最近在看thinking in java。里面有一段代码是这样写的
static {
。//调用一些方法。
}
我想问一下这是个什么方法啊,有什么作用?

解决方案 »

  1.   

    静态块使用对象时执行且就执行一次

    不用 new 对象就能自动运行
      

  2.   

    类第一次初始化的时候,先执行里的语句。比如,
    public class Test3 {
        afkj ;lkasfj
        static{
            System.exit(0);
        }
        public static void main(String args[]){
            Test3 test3 = new Test3();
            afjlfj sa
        }
    }
    运行结果是直接退出。
      

  3.   

    这是静态块,
    {
    //java执行语句
    }
    这种你应该见过吧,这两个类似,就是执行时间不同而已,静态块是在第一次加载的时候用,而普通的代码块是在你调用这个块所在的域里面执行的。
      

  4.   


    public class Test {
       static {
         System.out.println("A");
       }
       public static void main(String[] args) {
           System.out.println("b");
       }
    }//类加载的时候 (先加载main方法所在类,会先运行static里面的代码)结果为 A,b
      

  5.   

     这个是静态初始化块
     静态初始化块是在类被加载的时候就执行的一块程序,并且一直存在直到程序关闭。
     
    一般会设计到它的执行顺序:
          静态变量、静态初始化块)>(变量、初始化块)>构造器      
          若存在父类的情况下则是:      父类的静态变量->父类的静态初始化块->子类的静态变量->子类的静态初始化块->父类构造器->子类构造器
      

  6.   

    是静态初始化块,在一个类加载进jvm时,会执行,通常用于初始化一些类的资源,对应与类的class_init方法。
    与静态初始化块相对的是实例初始化块,就是在实例化一个对象时执行。
    class{
        {
           //实例初始化 
        }
    }
      

  7.   

    这是静态代码块格式为:static {
      ...
    }
    在Java中,代码块分四种:
    1,普通代码块
       最平常的代码块,比如方法,类,if语句等等后面跟的大括号{}就是普通代码快
    2,构造代码块
       格式:
       
       {
        ...
        }
       
       就两个大括号,可以直接在其内部加入需要的代码,构造块优先于构造方法执行
    3,静态代码块
       格式上面说过了。他的主要用途是为静态属性初始化,他优先于主方法执行
       可以理解为是编译的时候就准备好的
    4,同步代码块
       关于线程的块,具体我也不详例题(仅供娱乐,一般不会这样做):
    怎样不用主方法就打印出Hello World?public class Test{
        static{
           System.out.println("Hello World");
           System.exit(1);//告诉程序不用再去找主方法了,不写会报 找不到主方法的异常
        }
    }
      

  8.   

    静态控制块的初始化;是对静态变量的初始化
    一般有关静态变量的执行顺序:
    父类的静态变量->父类的静态初始化块->子类的静态变量->子类的静态初始化块->父类构造器->子类构造器
      

  9.   

    楼上说的都对……随便找本Java的入门书籍,上面应该有解释……
      

  10.   

    静态代码块,JVM在加载类的时候会先执行静态代码块,而且只执行一次,在用new语句创建对象的时候不会执行
      

  11.   


    JVM在类主动使用的时候才会将类加载进来,而new 是主动使用的一种方式,为什么会不执行呢?