मेरा दावा कथन कोई परिणाम क्यों नहीं देता है? मुझे लगता है कि पहला दावा कथन विफल होना चाहिए, लेकिन मुझे ग्रहण पर कुछ भी दिखाई नहीं दे रहा है।जावा दावा त्रुटि त्रुटि फेंक नहीं देती
मैं इस कार्यक्रम को चलाने के लिए ग्रहण का उपयोग कर रहा हूं।
package java.first;
public class test {
public static void main(String[] args) throws Exception {
String s = "test1";
assert (s == "test");
s = "test";
assert (s == "test");
}
}
से "उधार" उस पर विस्तृत करने के लिए, आप '==' ऑपरेटर को समझ सकते हैं जैसे कि यह निम्नलिखित प्रश्न का उत्तर: यह अन्य वस्तु की इसी संदर्भ को यह वस्तु अंक के संदर्भ में ? यह 2 लोग स्मृति का एक ही हिस्सा है, जो केवल सच है अगर यह 1 और आप आवेदन (सिंगलटन) के पूरे संदर्भ में इस तरह के वस्तु का केवल 1 उदाहरण मौजूद है में आवंटित कर रहे हैं। दूसरे शब्दों में एक वस्तु का एक उदाहरण केवल 'ही == है'। जब से तुम यह एक और उदाहरण है जो एक ही मूल्य आप उपयोग करने की आवश्यकता धारण करने के लिए तुलना कर रहे हैं 'equals'method के रूप में ऊपर कहा गया है। – VallaDanger
जब आप कहते हैं '(रों ==" परीक्षण ")' आप वास्तव में मूल्य 'test' साथ स्ट्रिंग का एक नया उदाहरण बनाने, इसलिए पूछ रहे हैं कि कि नया उदाहरण' है == '' को s' बिल्कुल नहीं है 'सच '' जब तक आप String.intern() 'विधि है जो यह सुनिश्चित करेंगे कि एक ही मान होने सभी स्ट्रिंग्स एक ही स्मृति का हिस्सा का उपयोग करें। वहाँ वास्तव में और अधिक वस्तुओं समानता, कारण है कि मैं प्रभावी जावा (2 संस्करण, अध्याय 3, मद 8) एक मौका देने की सिफारिश करेंगे के बारे में पता है। – VallaDanger