static
final
स्थिरांक विधि से लौटाए गए शाब्दिक मूल्यों से अलग व्यवहार करते हैं। जावा कंपाइलर कुछ मामलों में संकलन समय पर भी इनका उपयोग करता है।
एक उदाहरण
public static boolean DEBUG = false;
...
if (DEBUG)
{
...do something...
}
बनाम
public boolean debug()
{
return false;
}
...
if (debug())
{
...do something 2...
}
पहले मामले में, हालत और ... कुछ करना ... कोड संकलित बाइट-कोड में शामिल नहीं किया जाएगा (कक्षा फाइल)। दूसरे मामले में, स्थिति और ... कुछ 2 करें ... कोड शामिल किया जाएगा लेकिन कभी निष्पादित नहीं होगा - जेआईटी इस मामले में पर्याप्त विश्लेषण कर सकता है हालांकि रनटाइम पर कोड को निकालने के लिए।
एक समय में, जावा के शुरुआती दिनों में, जेआईटी अस्तित्व में नहीं था या सरल विधि को अनुकूलित करने के लिए पर्याप्त स्मार्ट नहीं था जो एक शाब्दिक मूल्य देता है। फिर प्रदर्शन के लिए निरंतर मूल्य की आवश्यकता थी। यदि आप इस बात को ध्यान में रखते हैं कि बाहरी वर्ग (सार्वजनिक/संरक्षित स्थिर अंतिम स्थिरांक के लिए) को संकलन समय पर उस बाइट-कोड में बेक किया गया मान होगा, तो यह स्थिरता को परिभाषित करने के लिए और भी सुविधाजनक है; रनटाइम पर स्रोत वर्ग से मूल्य प्राप्त करने के बजाय।
स्रोत
2012-10-05 20:43:14
http://codebetter.com/raymondlewallen/2005/07/19/4-major-principles-of-object-oriented-programming/ – talnicolas
मैं इस बारे में उत्सुक हूं कि बाइटकोड क्या होता है। 'स्थिर अंतिम 'चर लौटने वाली' स्थिर 'विधि अत्यधिक अनुकूलन प्रतीत होती है। – Brian