जवाबों:
Boolean
(ऑब्जेक्ट) के लिए डिफ़ॉल्ट मान है null
। (आदिम) के
लिए डिफ़ॉल्ट मान boolean
है false
।
किसी भी का डिफ़ॉल्ट मान Object
, जैसे Boolean
, है null
।
एक के लिए डिफ़ॉल्ट मान boolean
गलत है।
नोट: प्रत्येक आदिम में एक आवरण वर्ग होता है। हर रैपर एक संदर्भ का उपयोग करता है जिसका डिफ़ॉल्ट है null
। प्राथमिकताओं के अलग-अलग डिफ़ॉल्ट मूल्य हैं:
boolean -> false
byte, char, short, int, long -> 0
float, double -> 0.0
नोट (2): void
में एक रैपर होता है Void
जिसका डिफ़ॉल्ट भी होता है null
और यह केवल संभव मूल्य (हैक्स का उपयोग किए बिना) है।
Boolean
है Object
, जो पहली पंक्ति का अर्थ स्पष्ट करेगा। यह बहुत बुनियादी लगता है, लेकिन किसी को इस तरह एक बुनियादी सवाल पूछने के लिए यह मदद कर सकता है।
बूलियन या
हो सकता है ।
डिफ़ॉल्ट मान है ।true
false
false
(स्रोत: जावा आदिम चर )
बूलियन
एक हो सकता है Boolean
वस्तु का प्रतिनिधित्व करने true
या false
, या हो सकता है null
।
डिफ़ॉल्ट मान है null
।
यदि आपको पूछने की आवश्यकता है, तो आपको अपने क्षेत्रों / चर को स्पष्ट रूप से आरंभ करने की आवश्यकता है, क्योंकि यदि आपको इसे देखना है, तो संभावना है कि किसी और को भी ऐसा करने की आवश्यकता है।
एक आदिम के लिए मूल्य boolean
गलत है जैसा कि यहां देखा जा सकता है ।
जैसा कि दूसरों ने उल्लेख किया है कि Boolean
डिफ़ॉल्ट रूप से वसीयत का मूल्य शून्य होगा।
बूलियन एक वस्तु है। तो अगर यह एक इंस्टेंस वैरिएबल है तो यह शून्य हो जाएगा। यदि यह एक विधि के भीतर घोषित किया जाता है, तो आपको इसे प्रारंभ करना होगा, या एक कंपाइलर त्रुटि होगी।
यदि आप एक आदिम यानी बूलियन के रूप में घोषित करते हैं। यदि यह एक उदाहरण चर (या वर्ग चर) है तो मान डिफ़ॉल्ट रूप से गलत होगा। यदि यह एक विधि के भीतर घोषित किया जाता है, तो आपको अभी भी इसे सही या गलत के लिए शुरू करना होगा, या एक संकलक त्रुटि होगी।
के लिए कोई डिफ़ॉल्ट नहीं है Boolean
। Boolean
एक boolean
या एक के साथ निर्माण किया जाना चाहिए String
। यदि वस्तु अनधिकृत है, तो यह इंगित करेगा null
।
आदिम boolean
का डिफ़ॉल्ट मान है false
।
http://download.oracle.com/javase/6/docs/api/java/lang/Boolean.html
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypet.html
null
। null
डिफ़ॉल्ट है, इसलिए मुझे यकीन नहीं है कि जब आप कहते हैं कि आप एक नहीं हैं। (क्या आपका मतलब कुछ ऐसा है जैसे " Boolean
न तो है true
और न ही false
डिफ़ॉल्ट रूप से"?)
class BooleanTester
{
boolean primitive;
Boolean object;
public static void main(String[] args) {
BooleanTester booleanTester = new BooleanTester();
System.out.println("primitive: " + booleanTester.getPrimitive());
System.out.println("object: " + booleanTester.getObject());
}
public boolean getPrimitive() {
return primitive;
}
public Boolean getObject() {
return object;
}
}
उत्पादन:
primitive: false
object: null
यह स्पष्ट प्रतीत होता है, लेकिन मेरे पास एक ऐसी स्थिति थी जहां जैक्सन ने जेन्सन के लिए एक वस्तु को क्रमबद्ध करते हुए, एक गेटवे को कॉल करने के बाद एक एनपीई फेंक रहा था, बस इस तरह, कि एक आदिम बूलियन लौटाता है जिसे असाइन नहीं किया गया था। इसने मुझे विश्वास दिलाया कि जैक्सन एक अशक्त प्राप्त कर रहा था और इस पर एक विधि को कॉल करने की कोशिश कर रहा था, इसलिए एनपीई। मैं गलत था।
कहानी की नैतिकता यह है कि जब जावा एक आदिम के लिए मेमोरी आवंटित करता है, तो उस मेमोरी का एक मूल्य होता है भले ही वह आरंभीकृत न हो, जो जावा बूलियन के लिए झूठे के बराबर हो। इसके विपरीत, जब एक बूलियन की तरह एक असंगठित जटिल वस्तु के लिए स्मृति आवंटित करते हैं, तो यह केवल उस वस्तु के संदर्भ के लिए स्थान आवंटित करता है, न कि वस्तु ही - संदर्भित करने के लिए स्मृति में कोई वस्तु नहीं है - इसलिए अशक्त में उस संदर्भ परिणाम को हल करना।
मुझे लगता है कि सख्ती से बोलना, "झूठ के लिए चूक" निशान से थोड़ा दूर है। मुझे लगता है कि जावा मेमोरी को आवंटित नहीं करता है और इसे तब तक गलत मान देता है जब तक कि यह स्पष्ट रूप से सेट न हो; मुझे लगता है कि जावा मेमोरी को आवंटित करता है और जो भी मेमोरी होती है वह 'असत्य' के मान के समान होती है। लेकिन व्यावहारिक उद्देश्य के लिए वे एक ही चीज हैं।