"हॅलो, अमिगो! मी ऐकले आहे की ऋषीने तुम्हाला काहीतरी नवीन आणि रोमांचक समजावून सांगितले?!"

"बरोबर आहे, किम."

"माझा विषय काही कमी मनोरंजक असणार नाही. वर्ग मेमरीमध्ये कसे लोड केले जातात याबद्दल मला सांगायचे आहे."

Java मधील क्लासेस डिस्कवरील फाईल्स असतात ज्यात बायकोड असते, जो Java कोड संकलित केला जातो.

"हो मला आठवतंय."

जावा मशीन आवश्यक नसल्यास ते लोड करत नाही. कोडमध्ये कुठेतरी क्लासला कॉल येताच, Java मशीन ते लोड झाले आहे का ते तपासते. आणि जर नसेल, तर ते लोड होते आणि आरंभ करते.

क्लास सुरू करण्यामध्ये त्याच्या सर्व स्टॅटिक व्हेरिएबल्सना मूल्ये नियुक्त करणे आणि सर्व स्टॅटिक इनिशियलायझेशन ब्लॉक्सना कॉल करणे समाविष्ट आहे.

"हे एखाद्या ऑब्जेक्टवर कन्स्ट्रक्टरला कॉल करण्यासारखे दिसते. पण स्टॅटिक इनिशिएलायझेशन ब्लॉक काय आहे?"

"ऑब्जेक्ट सुरू करण्यासाठी तुम्हाला जटिल कोड (उदाहरणार्थ, फाइलमधून काहीतरी लोड करणे) कार्यान्वित करण्याची आवश्यकता असल्यास, आम्ही ते कन्स्ट्रक्टरमध्ये करू शकतो. तथापि, स्थिर व्हेरिएबल्सना ही संधी नाही. परंतु गरज अजूनही शिल्लक असल्याने, तुम्ही करू शकता. क्लासेसमध्ये स्टॅटिक इनिशिएलायझेशन ब्लॉक किंवा ब्लॉक्स जोडा. ते मुळात स्टॅटिक कन्स्ट्रक्टर्सच्या समतुल्य आहेत."

हे असे दिसते:

कोड खरोखर काय होते
class Cat
{
public static int catCount = 0 ;
public static String namePrefix;

static
{
Properties p = new Properties();
p.loadFromFile("cat.properties");
namePrefix = p.get("name-prefix");
}

public static int maxCatCount = 50;

static
{
Properties p = new Properties();
p.loadFromFile("max.properties");
if (p.get("cat-max") != null)
maxCatCount = p.getInt("cat-max");
}

}
class Cat
{
public static int catCount;
public static String namePrefix;
public static int maxCatCount;

//Static constructors aren't allowed in Java,
//but if they were, everything
//would look like this
public static Cat()
{
catCount = 0;

Properties p = new Properties();
p.loadFromFile("cat.properties");
namePrefix = p.get("name-prefix");

maxCatCount = 50;

Properties p2 = new Properties();
p2.loadFromFile("max.properties");
if (p2.get("cat-max")!=null)
maxCatCount = p2.getInt("cat-max");
}
}

जेव्हा एखाद्या कन्स्ट्रक्टरला कॉल केला जातो तेव्हा काय होते यासारखे आहे. मी ते (अस्तित्वात नसलेले) स्टॅटिक कन्स्ट्रक्टर म्हणूनही लिहिले आहे.

"हो, समजले."

"खुप छान."