【问题标题】:What is the Java `static {}` keyword all by itself? [duplicate]Java `static {}` 关键字本身是什么? [复制]
【发布时间】:2012-07-16 08:30:39
【问题描述】:

可能重复:
Static Block in Java

我遇到了static 的以下用法,但没有弄清楚它的作用。 我知道使用例如static String hello = "World";,但我不明白以下内容。

static {
   loadFromProperties(new Properties());
}

【问题讨论】:

  • 程序中的静态块是VM初始化时最先执行的。更具体地说,静态块用于初始化静态常量。公共静态最终 int MAX_ITER;静态 { int dummyMaxIter = AClass.calculateABC(); if (dummyMaxIter >= 0) { MAX_ITER = dummyMaxIter; } 其他 { MAX_ITER = 0; } } 见上面的部分。可以直接从AClass.calculateABC()初始化MAX_ITER。但是你需要在赋值之前验证AClass.calculateABC()返回的值。
  • 你是对的,这是重复的。对此感到抱歉。

标签: java static


【解决方案1】:

这称为静态块。这些是在类被加载/初始化但在实例化之前执行的。您可以使用 then 来初始化静态成员/字段。

【讨论】:

  • 其实是在类初始化的时候执行的。 (实际上,您很少注意到差异。)
【解决方案2】:

它被称为static initializer。它是在类初始化时运行的一段代码。

相关问题(实际上可能是一个重复):

【讨论】:

  • 初始化和实例化有区别吗?
  • @NimChimpsky:Class 初始化发生在创建任何实例(实例化)之前。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
  • 2014-12-19
  • 2014-09-24
  • 2011-07-11
  • 2014-12-05
  • 2010-12-18
相关资源
最近更新 更多