我在一个例子中看到了下面的代码,我无法理解他们在做什么以及他们用相同的代码代表什么
以下代码在java中的含义是什么
static
{
variable 1;
variable 2;
variable 3;
variable 4;
}
答案 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