前几天我在看一些代码时,我发现:
static {
...
}
我是c++出身,不知道为什么会有这个。这不是一个错误,因为代码编译良好。这个“静态”代码块是什么?
前几天我在看一些代码时,我发现:
static {
...
}
我是c++出身,不知道为什么会有这个。这不是一个错误,因为代码编译良好。这个“静态”代码块是什么?
当前回答
它是一个代码块,当类装入器装入类时执行。它用于初始化类的静态成员。
也可以编写非静态初始化式,这看起来更奇怪:
public class Foo {
{
// This code will be executed before every constructor
// but after the call to super()
}
Foo() {
}
}
其他回答
静态块用于初始化代码,并将在JVM加载类时执行。请参考下面给出详细解释的链接。 http://www.jusfortechies.com/java/core-java/static-blocks.php
它是一个代码块,当类装入器装入类时执行。它用于初始化类的静态成员。
也可以编写非静态初始化式,这看起来更奇怪:
public class Foo {
{
// This code will be executed before every constructor
// but after the call to super()
}
Foo() {
}
}
静态块在任何程序的生命周期中执行一次, static block的另一个属性是它在main方法之前执行。
静态块可以用来表示程序也可以不使用主函数而运行。
//static block
//static block is used to initlize static data member of the clas at the time of clas loading
//static block is exeuted before the main
class B
{
static
{
System.out.println("Welcome to Java");
System.exit(0);
}
}
是的,静态块用于初始化代码,它将在JVM开始执行时加载。
静态块在以前的Java版本中使用,但在最新版本中它不起作用。