Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的优先级_Java_Constructor - Fatal编程技术网

java中的优先级

java中的优先级,java,constructor,Java,Constructor,有人能解释一下这个输出是怎么来的吗 class Class { { System.out.println("Instance Initializer block"); } Class() { System.out.println("Default Constructor"); } static { System.out.println("Static Block");

有人能解释一下这个输出是怎么来的吗

class Class
{    
    {   
        System.out.println("Instance Initializer block");   
    }

    Class()
    {
       System.out.println("Default Constructor");
    }

    static
    {
        System.out.println("Static Block");
    }

    public static void main(String[] Args) 
    {
        new Class();
        System.out.println("Hello world");
    }
}
输出:

Static Block
Instance Initializer Block
Default Constructor
Hello World

初始化类时,首先执行静态初始值设定项块,打印
“static block”

创建实例时(
newclass()
),首先执行实例初始值设定项块(打印
“实例初始值设定项块”
),然后执行构造函数(打印
“默认构造函数”


最后执行main方法的
println
语句,打印
“Hello World”

顺序如下

  • 当JVM(类加载器)加载类时,正在运行静态初始化块(调用静态块,与实例创建无关
  • 当您尝试创建实例时 2.1调用初始化块 2.2然后是建造师
  • 最后,请打印您的报表

  • 如果我从“实例初始值设定项块”中删除花括号,它会给我error@Manish如果删除大括号,则它不再是实例初始值设定项块。不能有不属于任何方法、构造函数或初始值设定项块的语句。