प्रश्न कम से कम संदर्भ के बिना अर्थपूर्ण नहीं है।
जावा में "आकार" की धारणा केवल समुचित रूप से पुरातन के लिए परिभाषित किया गया है: एक बाइट 8 बिट (आश्चर्य) एक int
32 बिट, एक long
64 बिट, आदि है (पूरी सूची के लिए जैसे http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html देखें)।
वस्तु उदाहरणों के लिए, यह और अधिक जटिल है, क्योंकि:
- वस्तु उदाहरणों कर सकते हैं (और आमतौर पर होगा) अन्य उदाहरण के लिए संदर्भ आंतरिक रूप से शामिल है, तो आप यह तय करना होगा कि क्या इन निर्भर उदाहरणों गिनती करने के लिए, और कैसे। क्या होगा यदि कई उदाहरण निर्भरता साझा करते हैं?
- कभी-कभी, ऑब्जेक्ट इंस्टेंस का पुन: उपयोग किया जा सकता है (उदा।
java.lang.String
का इंटर्निंग, http://en.wikipedia.org/wiki/String_interning देखें)। तो यदि आप आकार वाई के एक्स ऑब्जेक्ट्स का उपयोग करते हैं, तो कुल आकार x * y
- से छोटा हो सकता है। JVM में वस्तुओं और उदाहरणों को आंतरिक रूप से कार्यान्वित करने के तरीके के बारे में बहुत कुछ है। यह विभिन्न उदाहरणों के लिए विभिन्न तकनीकों का उपयोग कर सकता है (उदा। आंतरिक डेटा संरचनाओं को साझा करना), इसलिए एक ऑब्जेक्ट को असाइन करने के लिए एक सार्थक "आकार" भी नहीं हो सकता है।
शायद आप समझा सकते हैं कि आप ऑब्जेक्ट आकारों में रुचि क्यों रखते हैं।
उदाहरणों द्वारा उपयोग की जाने वाली ढेर मेमोरी का अनुमान लगाने के लिए अंगूठे के कुछ नियम हैं (उदाहरण के लिए सूर्य जेवीएम में, java.lang.Object
उदाहरण 8 बाइट का उपयोग करता है), लेकिन ये आपके द्वारा उपयोग किए जाने वाले जेवीएम पर निर्भर होंगे।
आम तौर पर, यदि आप अपने ढेर के उपयोग के बारे में जानना चाहते हैं, तो मेमोरी/हीप प्रोफाइलर का उपयोग करें।
संपादित करें:
ठीक है, एक वस्तु के द्वारा प्रयोग किया स्मृति की मात्रा का एक अनुमान प्राप्त करने के लिए एक तरह से (JDK 6) के रूप में है: http://download.oracle.com/javase/6/docs/api/java/lang/instrument/Instrumentation.html#getObjectSize%28java.lang.Object%29
यह अभी भी केवल एक सन्निकटन है ..
क्यों आप वस्तु के आकार को जानने की आवश्यकता है की तरह जावा में किसी भी वस्तु के आकार की गणना करने के sizeof4j लाइब्रेरी का उपयोग कर सकते हैं? –
यदि आपको वास्तव में जानने की आवश्यकता है ... http://stackoverflow.com/questions/52353/in-java-what-is-the-best-way-to-determine-the-size-of-an-object –
उस परिदृश्य पर विचार करें जहां हमारे पास सीमित स्मृति है और एप्लिकेशन में स्पेस लेने के लिए कई ऑब्जेक्ट्स हैं, फिर हम कैसे पहचानेंगे कि कौन सी ऑब्जेक्ट अधिक जगह ले रही है और तदनुसार संभालती है। – daydreamer