Static field initializers are executed in the order in which they appear in the class from top to bottom. Thus, placing a static field in a class above the field or fields required for its initialization will yield unexpected results.
== Noncompliant Code Example
----
class MyClass
{
public static int X = Y; // Noncompliant; Y at this time is still assigned default(int), i.e. 0