【问题标题】:What are static code blocks for? [duplicate]静态代码块有什么用? [复制]
【发布时间】:2013-07-29 07:07:18
【问题描述】:

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

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

static {};

这条线是什么意思?

【问题讨论】:

标签: java static block javap


【解决方案1】:

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

【讨论】:

    【解决方案2】:
    • 这是一个 static 块,用于初始化值
    • 这个块在类初始化时被执行
    • 无论何时初始化类,都会执行静态初始化块,执行顺序取决于它们在程序中的出现。

    【讨论】:

    • "这个块在类被加载到 JVM 时被执行"。不,它在类初始化时执行。
    • 每次初始化一个类时都会执行(使用多个类加载器可能不止一次)
    • @johnchen902,非常感谢,我编辑了 :)
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2016-10-21
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 2012-10-30
      • 2012-01-17
      • 2018-05-26
      • 2019-09-17
      • 1970-01-01
      相关资源
      最近更新 更多