क्योंकि James Gosling ऐसा कहा .... (या Bjarne Stroustrup ऐसा कहा)। असल में, यह ज्यादातर भाषा डिजाइन का सवाल है, तकनीकी कानून नहीं।
javac
आपसे इन अर्थशास्त्र को छुपाता है और जिसे मुक्केबाजी/अनबॉक्सिंग कहा जाता है (और यह स्वचालित रूप से करता है)। वे प्रकार values
या "ऑब्जेक्ट्स" के रूप में मौजूद हो सकते हैं (आमतौर पर एक ढेर के साथ लागू)। जब किसी संदर्भ को किसी ऑब्जेक्ट संदर्भ की आवश्यकता होती है, तो javac int
मान को ऑब्जेक्ट रैपर (int -> Integer) में स्थानांतरित करने के लिए बॉक्स निर्देश को उत्सर्जित करता है और reference value
पास करता है। कई निम्न स्तर के जेवीएम ऑपकोड स्केलर वैल्यू को संभालने के लिए बनाए जाते हैं क्योंकि कुछ संदर्भ मानों (या सिर्फ संदर्भ) को संभालने के लिए बनाए गए हैं।
एक प्रमुख उदाहरण संग्रह में int
संग्रहीत कर रहा है। यह बॉक्सिंग हो जाता है।
लेकिन अंत में, पूछना कि एक भाषा जो वाक्य रचनात्मक रूप से करती है वह एक कलाकार से पूछने की तरह है कि उसने इस तरह एक चित्रकला क्यों पेंट की। सिर्फ इसलिए कि। भाषाएं कुछ हद तक भावनाओं और भावनाओं से डिजाइन की गई हैं, लेकिन जावा के मामले में, new
का सिंटैक्स सी ++ से विरासत में मिला था, इसलिए हो सकता है कि व्हाइम Bjarne Stroustrup's हो सकता है। यह भी मान लें कि स्कैला भी एक जेवीएम भाषा है, फिर भी इसमें कुछ आम विचारों के लिए बहुत अलग वाक्यविन्यास है।
यहां कुंजी यह है कि संकलक लेखक कल निर्णय ले सकता है कि "नया जावा" एक नई भाषा होगी जिसके लिए सभी प्रकार के सामने सभी कैप्स में NEW
की आवश्यकता होगी। इसे भाषा के अर्थशास्त्र को प्रभावित किए बिना लागू किया जा सकता है, जो भी हो।
माना जाता है कि विकल्पों के पीछे ध्वनि डिजाइन और स्थिरता है, लेकिन विकल्प अभी भी विकल्प हैं। इस मामले में, पसंद स्पष्ट रूप से इंगित करता है कि int
एक आदिम प्रकार है, और new
केवल वस्तुओं को लौटाता है, न कि प्राइमेटिव्स। तो यह वाक्यविन्यास का एक अच्छा विकल्प है।
यह कौन सी भाषा है? –
क्या मेरा सवाल गलत है कि मुझे वोट दिया गया, मेरी प्रतिष्ठा 11 थी, अब यह 9 है, प्रतिष्ठा बनाना मुश्किल है, लेकिन ढीला आसान है। : डी – user2849331
@ user2849331 नहीं, कुछ जोकर बिना किसी स्पष्टीकरण और कारण के इस धागे में सब कुछ टोलिंग और डाउन-वोटिंग कर रहे हैं। – SnakeDoc