Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Initialization of a class consists of executing its static initializers and the initializers for static fields (class variables) declared in the class.

Wiki MarkupTherefore, the presence of a {{static}} field triggers the initialization of a class. However, the initializer of a static field could depend on the initialization of another class, possibly creating an initialization cycle.

Wiki Markup
 The JLS also states in [§8.3.2.1, "Initializers for Class Variables" |http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.3.2.1] \[[JLS 2005|AA. References#JLS 05]\]

...

The CERT C++ Secure Coding Standard

DCL14-CPP. Avoid assumptions about the initialization order between translation units

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="d13a7cd73453d140-b2d66d19-47454ddf-8e64a0b8-a77a4b08cc313d857f0ab955"><ac:plain-text-body><![CDATA[

[ISO/IEC TR 24772:2010

http://www.aitcnet.org/isai/]

Initialization of variables [LAV]

]]></ac:plain-text-body></ac:structured-macro>

...

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="e09cbec193d6fc81-31cbe4cd-44c5447d-a791ba61-f04c5f80f75fd2032715f0bb"><ac:plain-text-body><![CDATA[

[[JLS 2005

AA. References#JLS 05]]

[§8.3.2.1, Initializers for Class Variables

http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.3.2.1]

]]></ac:plain-text-body></ac:structured-macro>

 

§12.4, Initialization of Classes and Interfaces

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="ea45dbc9af9af9d7-9c0c91db-47434267-9d36a92f-7a234547c41a08dcef9dadca"><ac:plain-text-body><![CDATA[

[[Bloch 2005

AA. References#Bloch 05]]

Puzzle 49. Larger than life

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="c1477270a2f76eef-2c93f8ce-4f314f68-afb9884f-841d73e9bf02a5bb12bb51c4"><ac:plain-text-body><![CDATA[

[[MITRE 2009

AA. References#MITRE 09]]

[CWE-665

http://cwe.mitre.org/data/definitions/665.html]. Improper initialization

]]></ac:plain-text-body></ac:structured-macro>

...