एक static वेरिएबल क्लास लोडिंग के समय बनता है यहां तक कि static ब्लॉक के निष्पादन से पहले और static ब्लॉक का उद्देश्य static वेरिएबल्स को मान असाइन करना है। एक static वेरिएबल एक मान स्टोर करता है जो उस क्लास के सभी इंस्टेंसेस के बीच शेयर किया जाता है जिसमें यह परिभाषित है और एक static ब्लॉक कोड का एक सेक्शन है जो क्लास पहली बार लोड होने पर निष्पादित होता है। यदि हम कोई लॉजिक चाहते हैं जिसे क्लास लोडिंग के समय निष्पादित करने की आवश्यकता है तो उस लॉजिक को static ब्लॉक के अंदर रखना होगा ताकि यह क्लास लोडिंग के समय निष्पादित हो।
JVM क्लास में static मेंबर्स को पढ़ने के लिए नीचे दिए गए चरणों का पालन करता है:
- ऊपर से नीचे static मेंबर्स की पहचान
- ऊपर से नीचे static वेरिएबल्स असाइनमेंट और static ब्लॉक्स का निष्पादन।
- main मेथड का निष्पादन।
उदाहरण
public class StaticFlow {
static int firstNumber = 10;
static {
firstMethod();
System.out.println("first static block");
}
public static void main(String[] args) {
firstMethod();
System.out.println("main method executed");
}
public static void firstMethod() {
System.out.println(secondNumber);
}
static {
System.out.println("second static block");
}
static int secondNumber = 20;
}
आउटपुट
0 first static block second static block 20 main method executed