मेरी राय आज तक थी, कि "c"
जैसे शाब्दिक String
ऑब्जेक्ट बनाता है। आज मैंने सुना है कि जावा एकल चरित्र तारों के लिए एक वस्तु नहीं बना रहा है। क्या यह सही है? क्या यह उस शाब्दिक को char
के रूप में संग्रहीत करता है?सिंगल कैरेक्टर स्ट्रिंग
उत्तर
"c"
String
शाब्दिक है। यह String
का प्रतिनिधित्व करता है जैसे "foo"
String
का प्रतिनिधित्व करता है।
एकल चरित्र String
शाब्दिक का कोई विशेष हैंडलिंग (यहां तक कि 0 अक्षर String
शाब्दिक ""
की नहीं) नहीं है।
जो भी आपको बताता है कि इसका अलग-अलग व्यवहार किया गया था।) गलत या बी।) कुछ अलग बात करने के बारे में बात करते हैं (उदाहरण के लिए एक विशेष पुस्तकालय जिसमें एक पुस्तकालय है)।
"c"
एक स्ट्रिंग बनाएगा। 'c'
एक char
कोई भी गलत नहीं होगा। यहां तक कि ""
, String
ऑब्जेक्ट बनाता है। हालांकि यदि आप 'c'
टाइप करते हैं, तो आपको एक char मिला है और String
ऑब्जेक्ट नहीं है।
जावा एक वर्ण स्ट्रिंग के लिए भी एक स्ट्रिंग का उदाहरण बनाता है। निम्नलिखित प्रिंट java.lang.String
:
public class Test{
public static void main(final String[] args){
System.out.println("c".getClass().getName());
}
}
हाँ यह स्पष्ट रूप से रिटर्न स्ट्रिंग करता है क्योंकि '" "(डबल कोट्स) है तारों के लिए और '' '' (एकल उद्धरण) वर्णों के लिए – Woot4Moo
"c"
एक वस्तु पैदा करता है। हालांकि, अगर आप स्रोत कोड में कहीं भी शाब्दिक रूप से असाइन करते हैं, तो यह एक नई वस्तु नहीं बनाएगा, लेकिन बनाए गए पहले स्ट्रिंग ऑब्जेक्ट को संदर्भित करेगा।
उदाहरण के लिए:
String s1 = "abc"; //creates the String object
String s2 = "abc"; //references the same object as s1
दोनों एस 1 और एस 2 एक ही वस्तु आवंटित कर रहे हैं, और == काम करेगा।
आप यहाँ और अधिक पढ़ सकते हैं: http://javatechniques.com/blog/string-equality-and-interning/
गलत है। == केवल तभी काम करेगा यदि आपने String.intern – Woot4Moo
@ Woot4Moo no का उपयोग किया है, यह सच है। शाब्दिक तारों को डिफ़ॉल्ट रूप से प्रशिक्षित किया जाता है। – sfussenegger
@ Woot4Moo https://gist.github.com/1044768 – sfussenegger
हो सकता है कि क्या मतलब था कि हुड के नीचे flyweights बनाई गई हैं था (यह पता नहीं कैसे जावा के साथ काम करता है, लेकिन मुझे लगता है कि इस अवधारणा को तार के लिए कुछ स्तर पर employeed है) एक char[]
रूप
यह कुछ परिचालनों के लिए सच है, अर्थात् substring (..), subSequence (..) और trim(), जहां परिणामस्वरूप स्ट्रिंग हुड के नीचे एक ही char [] का उपयोग करेगा। मैं नहीं देखता कि यह स्ट्रिंग अक्षर को कैसे प्रभावित कर सकता है। – sfussenegger
String
भंडार वर्ण, तो सबसे अधिक संभावना "c"
new char[] { 'c' }
String
वस्तु के भीतर के रूप में प्रतिनिधित्व किया जाएगा।
String
कक्षा final
है, इसका मतलब है कि कोई char c
फ़ील्ड में एकल-वर्ण तारों को संग्रहीत करने वाला कोई सबक्लास नहीं है।
इसके अलावा, ऑटो मुक्केबाजी की कोई अवधारणा नहीं है/एक एकल चरित्र String
char
करने के लिए unboxing - जहाँ तक के रूप में यह दर्ज है, तो यह एकल चरित्र स्ट्रिंग्स ग्रहण करने के लिए सुरक्षित है किसी भी अन्य प्रकार के समान जमा हो जाती है स्ट्रिंग का
प्रोग्रामिंग में अधिकांश चीजों के साथ स्रोत -> java.lang.String पर देखें।
सभी स्ट्रिंग java.lang के उदाहरण हैं। स्ट्रिंग का कोई विशेष मामला नहीं है। प्रत्येक और प्रत्येक java.lang.String में एक char [] और कुछ पूर्णांक शामिल होते हैं जो प्रारंभ और अंत अनुक्रमणिका को पकड़ते हैं।ध्यान दें कि char [] को स्ट्रिन उदाहरणों के बीच साझा किया जाता है जैसे कि जब कोई स्ट्रिंग.substring() मूल char [] को क्लोन या कॉपी नहीं किया जाता है, तो इसे साझा किया जाता है लेकिन स्टार्ट/एंड इंडेक्स अपडेट होते हैं।
- 1. जावास्क्रिप्ट नियमित अभिव्यक्ति "सिंगल स्पेस कैरेक्टर"
- 2. बूस्ट एक सिंगल कैरेक्टर या सिर्फ एक स्ट्रिंग के साथ विभाजित
- 3. एक सिंगल कोट/एस्ट्रोफ़े
- 4. इंडेक्स द्वारा स्ट्रिंग कैरेक्टर प्राप्त करें - जावा
- 5. व्हाइटस्पेस कैरेक्टर
- 6. फ्रांसीसी कैरेक्टर
- 7. चरित्र तारों की सरणी में स्ट्रिंग स्ट्रिंग
- 8. क्या सिंगल-कैरेक्टर वैल्यू के लिए स्ट्रिंग के बजाय char का उपयोग करने का कोई फायदा है?
- 9. जीसीसी 4.7 स्ट्रिंग लिटल के लिए स्रोत कैरेक्टर एन्कोडिंग और निष्पादन कैरेक्टर एन्कोडिंग?
- 10. स्पेस कैरेक्टर
- 11. एक्स कैरेक्टर
- 12. रेगेक्स एक सिंगल कैरेक्टर से मेल खाता है जो कि स्पेस
- 13. रूबी में एक स्ट्रिंग में एकल बैकस्लैश कैरेक्टर कैसे जोड़ें?
- 14. जावा स्ट्रिंग की विशिष्ट स्थिति पर कैरेक्टर को बदलें?
- 15. सी # विस्तार विधि - स्ट्रिंग स्प्लिट जो एस्केप कैरेक्टर
- 16. एसक्यूएल सर्वर - एंड स्ट्रिंग कैरेक्टर को हटाएं "\ 0" डेटा
- 17. कैरेक्टर लिटल से स्ट्रड :: सी ++
- 18. जावा: मल्टीथ्रेडेड कैरेक्टर स्ट्रीम डिकोडिंग
- 19. खाली स्ट्रिंग पर स्ट्रिंग स्प्लिट व्यवहार और सिंगल डेलीमीटर स्ट्रिंग पर
- 20. मैं एक सिंगल को स्ट्रिंग में कैसे परिवर्तित करूं?
- 21. jQuery। सिंगल $
- 22. सिंगल पॉइंटर
- 23. सिंगल डेवलपर
- 24. मैं जावा में इनपुट कैरेक्टर-बाय-कैरेक्टर कैसे पढ़ूं?
- 25. एक न्यूलाइन कैरेक्टर
- 26. Jquery वाइल्ड कार्ड कैरेक्टर
- 27. कैरेक्टर-एन्कोडिंग समस्या वसंत
- 28. एक अद्वितीय कैरेक्टर
- 29. न्यूलाइन कैरेक्टर बदलें .readline()
- 30. कैरेक्टर + को HTTP पोस्ट
सुना? सुनो कहाँ? – bmargulies
यह एक सिंगल-कैरेक्टर स्ट्रिंग के ऑटो-मुक्केबाजी/अनबॉक्सिंग की एक दिलचस्प अवधारणा होगी जो 'char' ... – Nick
उस व्यक्ति को बताएं जो आपको बताती है कि जावा भाषा विशिष्टता में अक्षर के बारे में हिस्सा पढ़ने के लिए। कैरेक्टर लिटलल्स और स्ट्रिंग लिटलल्स: http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#100960 –