Java构造函数问题
我不明白为什么会出现这种代码:Java构造函数问题,java,constructor,Java,Constructor,我不明白为什么会出现这种代码: class HelloWorld { HelloWorld() { System.out.println("1 cnstr "); } public static void main(String[] args) { HelloWorld a = new HelloWorld(); } { System.out.println("2 cnstr ");
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
为什么line System.out.println2 cnstr;工作这是什么样的街区?我使用了jdb,发现JVM在HelloWorld构造函数中的任何一行之前都以这一行开始块
谢谢你的帮助
{
System.out.println("2 cnstr ");
}
它是一个实例初始化块。它在类的构造函数执行之前运行
发件人:
Java编译器将初始值设定项块复制到每个构造函数中。
因此,这种方法可用于在用户之间共享代码块
多个构造函数
它是一个实例初始化块。它在类的构造函数执行之前运行
发件人:
Java编译器将初始值设定项块复制到每个构造函数中。
因此,这种方法可用于在用户之间共享代码块
多个构造函数
它是一个实例初始值设定项块,在每个构造函数之前执行。它是一个实例初始值设定项块,在每个构造函数之前执行。构造函数或整个类的初始化块?该类的每个构造函数中都使用这种块。构造函数或整个类的初始化块?此类块用于该类的每个构造函数中。您还可以使用静态{}来初始化在构造函数外部声明的静态变量。您还可以使用静态{}来初始化在构造函数外部声明的静态变量。