【发布时间】:2013-01-06 11:35:58
【问题描述】:
我不知道为什么这个代码:
class HelloWorld
{
HelloWorld()
{
System.out.println("1 cnstr ");
}
public static void main(String[] args)
{
HelloWorld a = new HelloWorld();
}
{
System.out.println("2 cnstr ");
}
}
给我输出:
2 cnstr
1 cnstr
为什么System.out.println("2 cnstr "); 行有效?它是什么样的块?我使用jdb 发现JVM 在HelloWorld() 构造函数中的任何行之前都以该行开头。
感谢您的帮助。
【问题讨论】:
-
您也可以使用
static { }来初始化在构造函数外部声明的static变量。
标签: java constructor