2012-03-09 15 views
42

मेरे पास लगातार तारों की एक सूची है जो मुझे अपने जावा प्रोग्राम के दौरान अलग-अलग समय पर प्रदर्शित करने की आवश्यकता है।जावा में निरंतर स्ट्रिंग को परिभाषित करना?

सीआई

मेरी कोड

#define WELCOME_MESSAGE के शीर्ष पर इस तरह तार निर्धारित कर सकते हैं "हैलो, सर्वर से स्वागत"

#define WAIT_MESSAGE "कृपया 5 सेकंड प्रतीक्षा" में

# EXFT_MESSAGE परिभाषित करें "अलविदा!"

मुझे आश्चर्य है कि जावा में इस तरह की चीज करने का मानक तरीका क्या है?

+4

'स्थिर अंतिम स्ट्रिंग WELCOME_MESSAGE =" हैलो ";'? –

+5

क्या आपने कोई शोध किया है? – Madbreaks

+3

हां लेकिन मैंने कुछ वेबसाइटें पढ़ीं जहां वे कह रहे थे कि 'अंतिम' जावा में स्थिर नहीं है, इसलिए मुझे यकीन नहीं था। जावा में – csss

उत्तर

94

आमतौर पर, आप एक वर्ग के शीर्ष की ओर इस निर्धारित करेंगे:

public static final String WELCOME_MESSAGE = "Hello, welcome to the server"; 
बेशक

, उचित सदस्य दृश्यता (public/private/protected) जहाँ आप इस निरंतर का उपयोग के आधार पर इस्तेमाल करते हैं।

+1

मैंने हमेशा सोचा है, अगर आप निरंतर 'निजी' के रूप में परिभाषित करते हैं तो स्थिर को स्थिर 'स्थिर' के रूप में सेट करना अनावश्यक नहीं है? – ChallengeAccepted

+4

नहीं, यह अभी भी 'स्थिर 'होना चाहिए। इसे निजी और गैर स्थैतिक बनाना अभी भी प्रत्येक बार जब आप प्रकार को चालू करते हैं तो स्ट्रिंग की एक नई प्रति बनायेगा। Http://stackoverflow.com/q/1415955/247763 – derekerdmann

10

यह इस तरह दिखेगा:

public static final String WELCOME_MESSAGE = "Hello, welcome to the server"; 

स्थिरांक बस एक ही कक्षा में उपयोग के लिए कर रहे हैं, तो आप उन्हें private बजाय public बनाना चाहते हैं तो।

3

आप

public static final String HELLO = "hello"; 

उपयोग कर सकते हैं अगर आप कई स्ट्रिंग स्थिरांक है, तो आप बाहरी संपत्ति फ़ाइल/सरल "निरंतर धारक" वर्ग का उपयोग कर सकते

1

बस का उपयोग

final String WELCOME_MESSAGE = "Hello, welcome to the server"; 

इस निर्देश का मुख्य भाग 'अंतिम' कीवर्ड है।

3

या उद्योग में एक और सामान्य मानक एक Constants.java नाम वर्ग फ़ाइल है जिसमें सभी परियोजनाओं का उपयोग पूरे सभी परियोजनाओं में किया जाना है।

1

हम आमतौर पर static के रूप में स्थिर घोषित करते हैं। इसका कारण यह है कि जब भी आप कक्षा के किसी ऑब्जेक्ट को तुरंत चालू करते हैं तो जावा गैर स्थैतिक चर की प्रतियां बनाता है।

तो अगर हम स्थिरांक static बनाते हैं तो ऐसा नहीं होगा और मेमोरी सहेज लेगा।

final के साथ हम चर स्थिर बना सकते हैं। व्यापार तर्क के आधार पर

private static final String YOUR_CONSTANT = "Some Value"; 

private/public पहुँच संशोधक हो सकता है:

इसलिए एक निरंतर चर को परिभाषित करने के लिए सबसे अच्छा अभ्यास निम्नलिखित है।

+0

देखें आप गलत हैं। यह जेवीएम द्वारा उपयोग किए जाने वाले स्ट्रिंग पूल की वजह से स्मृति को सहेजने में मदद नहीं करता है। – Mirimas

+0

@ मिमिमास नोप। तुम यहाँ दोस्त गलत हो। स्टेटिक केवल एक बार शुरू किया जाता है, लेकिन प्रत्येक गैर-स्थिर चर प्रारंभ होता है जब हर वस्तु का प्रारंभ होता है। –

+1

यहां स्ट्रिंग पूल का उपयोग किया जाता है, क्योंकि आप स्ट्रिंग बनाने के लिए "नया" कीवर्ड का उपयोग नहीं करते हैं। इसलिए, यदि आप तारों के लिए स्थिर का भी उपयोग नहीं करते हैं, तो यह स्ट्रिंग पूल से पहले ही निर्मित संदर्भ का उपयोग करेगा। और देखें: http://stackoverflow.com/questions/3297867/difference-between-string-object-and-string-literal – Mirimas

संबंधित मुद्दे