मेरी कक्षाओं में से एक में मेरे पास Character
प्रकार का क्षेत्र है। मैंने इसे char
से अधिक पसंद किया क्योंकि कभी-कभी फ़ील्ड में "कोई मूल्य नहीं" और null
सीम मुझे इस (कमी की) जानकारी का प्रतिनिधित्व करने का सबसे साफ तरीका है।जावा कैरेक्टर बनाम चार: स्मृति उपयोग के बारे में क्या?
हालांकि मैं इस दृष्टिकोण की स्मृति पदचिह्न के बारे में सोच रहा हूं। मैं सौ हजार वस्तुओं से निपट रहा हूं और दो विकल्पों के बीच नगण्य अंतर अब कुछ जांच के लायक हो सकता है।
मेरी पहली शर्त यह है कि char
दो बाइट लेता है जबकि Character
एक वस्तु है, और इसलिए इसके जीवन चक्र का समर्थन करने के लिए यह बहुत अधिक होता है। लेकिन मुझे Integer
, Character
जैसे बॉक्स किए गए प्राइमेटिव्स पता हैं और इसलिए सामान्य कक्षाएं नहीं हैं (मुक्केबाजी और अनबॉक्सिंग के बारे में सोचें), इसलिए मुझे आश्चर्य है कि क्या JVM हुड के तहत किसी प्रकार का अनुकूलन कर सकता है।
इसके अलावा, Character
एस कचरा अन्य सामान की तरह एकत्रित है या एक अलग जीवन चक्र है? क्या वे एक साझा भंडार से पूल किए गए हैं? क्या यह मानक या जेवीएम कार्यान्वयन-निर्भर है?
मुझे इस मुद्दे के बारे में इंटरनेट पर कोई स्पष्ट जानकारी नहीं मिली। क्या आप मुझे कुछ जानकारी के लिए इंगित कर सकते हैं?
के लिए '\ 0' एक के रूप में इस्तेमाल किया जा सकता * कोई मूल्य * चार – UmNyobe
ज़रूर, मैं इस बारे में पता। :) एप्लिकेशन डोमेन को देखते हुए मैं ~, # या एक चीनी चरित्र का भी उपयोग कर सकता हूं, लेकिन यह – gd1
बिंदु नहीं है, तो प्राइमेटिव हमेशा तेज होते हैं, ऑब्जेक्ट्स के साथ-साथ कम स्मृति प्राप्त करते हैं क्योंकि हम सभी जानते हैं कि हम स्ट्रिंग पर चार सरणी पसंद करते हैं। (जावा में सरणी के रूप में एक वस्तु है लेकिन यह एक बहस योग्य मुद्दा है: डी) – Freak