java中的static关键字和块

时间:2014-03-12 07:17:55

标签: java static

我在一个例子中看到了下面的代码,我无法理解他们在做什么以及他们用相同的代码代表什么

以下代码在java中的含义是什么

static 
{
    variable 1;
    variable 2;
    variable 3;
    variable 4;
}

2 个答案:

答案 0 :(得分:1)

这是一个静态阻止。

static{
  System.out.print("Hello");
}

静态块的属性:它在执行第一个静态方法之前执行。

答案 1 :(得分:0)

Java中的静态块

与C ++不同,Java支持一个称为静态块(也称为静态子句)的特殊块,它可用于类的静态初始化。静态块中的此代码仅执行一次:第一次创建该类的对象或第一次访问该类的静态成员时(即使您从未创建该类的对象)。例如,检查以下Java程序的输出。 // filename:Main.java class Test {     static int i;     int j;

// start of static block
static {
    i = 10;
    System.out.println("static block called ");
}
// end of static block

}

class Main {     public static void main(String args []){

    // Although we don't have an object of Test, static block is
    // called because i is being accessed in following statement.
    System.out.println(Test.i);
}

}

输出: 静态块叫 10

此外,静态块在构造函数之前执行。例如,检查以下Java程序的输出。 // filename:Main.java class Test {     static int i;     int j;     静态的 {         i = 10;         System.out.println(“static block called”);     }     测试(){         System.out.println(“构造函数调用”);     } }

class Main {     public static void main(String args []){

   // Although we have two objects, static block is executed only once.
   Test t1 = new Test();
   Test t2 = new Test();
}

}

Output:
static block called
Constructor called
Constructor called