Java 静态代码块的用途是什么?

Java 静态代码块的用途是什么?,java,static,block,javap,Java,Static,Block,Javap,我想问一下,除了传递给它的类的公共字段和方法之外,javap还显示了什么 我正在检查一个只有静态变量的类文件。正如预期的那样,javap将静态变量和类构造函数显示为输出,但它也显示如下内容: static {}; 这条线是什么意思? 这是一个用于初始化值的静态块 初始化类时执行此块 静态初始化程序块在初始化类时执行,执行顺序取决于它们在程序中的外观 javap-private-verbose类将向您显示常量池和方法字节码的详细信息 静态代码块初始化程序中的静态变量。它在类启动时执行,甚至在构造

我想问一下,除了传递给它的类的公共字段和方法之外,javap还显示了什么

我正在检查一个只有静态变量的类文件。正如预期的那样,javap将静态变量和类构造函数显示为输出,但它也显示如下内容:

static {};
这条线是什么意思?

  • 这是一个用于初始化值的
    静态
  • 初始化类时执行此块
  • 静态初始化程序块在初始化类时执行,执行顺序取决于它们在程序中的外观

javap-private-verbose类将向您显示常量池和方法字节码的详细信息

静态代码块初始化程序中的静态变量。它在类启动时执行,甚至在构造函数调用之前。

它表示静态块;它是一个“当类加载到JVM中时,将执行此块”。不,它是在类初始化时执行的。每次初始化一个类时都会执行它(对于多个类加载器可能不止一次)@johnchen902,非常感谢,我编辑了:)