java - How "==" operator compare references? mean internal working of "==" operator -


"==" या जावा में समानता ऑपरेटर जावा प्रोग्रामिंग भाषा द्वारा प्रदान की जाने वाली एक द्विआधारी ऑपरेटर है और प्रिमिटिव और ऑब्जेक्ट की तुलना करने के लिए प्रयोग किया जाता है ।

"==" मेमोरी संदर्भ के आधार पर दो वस्तुओं की तुलना करता है,

मेरा प्रश्न है कि कैसे "==" ऑपरेटर जावा में काम करता है वस्तुओं की तुलना ? यहाँ हम केवल चिंतित हैं कि संदर्भ ऑब्जेक्ट को संदर्भित कर रहे हैं या नहीं। हम बराबर () विधि के बारे में बात नहीं कर रहे हैं।

अच्छा, यह वास्तव में बहुत सरल है और सी कोड का इस्तेमाल करके सचित्र किया जा सकता है। सी में, एक मूल्य तक पहुंचने के कई तरीके हैं। * का उपयोग करके सूचक इंगित करता है, & amp; एक मेमोरी पता इंगित करता है, और मूल्य के उन डिफ़ॉल्ट के नहीं उदाहरण के लिए:

  int * myValue; // एक पूर्णांक मान के लिए एक सूचक।  

अब, जावा यह आपके से छुपाता है, लेकिन यह इस तथ्य को नहीं बदलता है कि ऐसा ही होता है।

  ऑब्जेक्ट ऑब्जेक्ट; // एक वस्तु के लिए एक सूचक  

== ऐसा काम करता है क्योंकि संकलक ऑपरेटरों के वास्तविक मान लेगा; नहीं वे मूल्य भी इंगित करते हैं जब यह दो ऑब्जेक्ट को हल करता है, तो यह मेमोरी एड्रेस के साथ छोड़ा जाता है और यही वह तुलना करता है। यह भ्रम पैदा करता है कि यह जांच रहा है कि क्या वे एक ही वस्तु हैं।

उदाहरण

जब आप टाइप करते हैं ..

  int x = 5; Int y = 4; यदि (x == y) {System.out.println ("कुछ करें"); }  

== को देखा जाता है, और x और y को उनके के साथ बदल दिया जाता है वास्तविक मान , तो यह हो जाता है ..

  यदि (5 == 4)  

जो, ​​इसके नमक के किसी भी संकलक का मूल्यांकन कर सकते हैं

  यदि (झूठे)  

अब वस्तु के साथ एक ही बात करते हैं।

  वस्तु ऑब्जेक्ट = नया वस्तु (); वस्तु वस्तु 2 = नया ऑब्जेक्ट ();  

अब हमने दो संकेतक दो अलग-अलग ऑब्जेक्ट्स को घोषित किया है वस्तु का वास्तविक मान एक स्मृति पता है, जैसा कि object2 है, इसलिए जब हम उनकी तुलना करते हैं ..

 < कोड> यदि (ऑब्जेक्ट == ऑब्जेक्ट 2)  

यह उनकी मेमोरी एड्रेस से बदल जाती है ..

  if (92305204950249t00 = 94205924059204t924) // बस यादृच्छिक मेमोरी पतों को इंगित करने वाले मूल्य  

और ये तुलना की जाती हैं। वे अलग हैं, इसलिए यह हो जाता है ..

  यदि (झूठे)  

ठीक उसी तरह से क्योंकि यह int


Comments

Popular posts from this blog

apache - 504 Gateway Time-out The server didn't respond in time. How to fix it? -

c# - .net WebSocket: CloseOutputAsync vs CloseAsync -

c++ - How to properly scale qgroupbox title with stylesheet for high resolution display? -