在代码中,有时候会遇到这种情况,
static
{
....
}
以及不带static的情况:
{
...
}
有时候会对这些东西有些迷惑,今天刚好看到一个视频教程对此做了解释,这里分享一下。下面直接给出一个例子:
public class StaticBlock {
//静态块
static
{
System.out.println("这是静态块里的内容!");
}
//非静态块
{
System.out.println("这是非静态块里的内容!");
}
public static void main(String[] args) {
for(int i = 0; i < 5; i++)
{
StaticBlock sb1 = new StaticBlock();
StaticBlock sb2 = new StaticBlock();
}
}
}
打印出来的结果是:
这是静态块里的内容!
这是非静态块里的内容!
这是非静态块里的内容!
这是非静态块里的内容!
这是非静态块里的内容!
这是非静态块里的内容!
这是非静态块里的内容!
这是非静态块里的内容!
这是非静态块里的内容!
这是非静态块里的内容!
这是非静态块里的内容!
如果大家对 static 这个关键字的含义有所理解的话,这里就很清楚不过了。在上面的静态块里的内容是在类加载的时候执行,所以上面的静态块里的内容只执行一次。而非静态块里的内容是在对象初始化的时候执行,所以执行了10次。