void someMethod() {
byte[] array = { 0, 0 };
}
क्या यह सरणी ढेर या ढेर में संग्रहीत की जाएगी?प्रारंभिक जावा सरणी स्टैक या ढेर पर जाती है?
void someMethod() {
byte[] array = { 0, 0 };
}
क्या यह सरणी ढेर या ढेर में संग्रहीत की जाएगी?प्रारंभिक जावा सरणी स्टैक या ढेर पर जाती है?
आप सोच सकते हैं क्योंकि यह हमेशा ढेर पर जा रहा है।
मेरा मानना है कि कुछ स्मार्ट वीएम ऑब्जेक्ट्स को स्टैक-ऑब्जेक्ट करने में सक्षम हैं अगर वे इसका सुरक्षित पता लगा सकते हैं - लेकिन अवधारणात्मक रूप से यह ढेर पर है। विशेष रूप से, सभी सरणी प्रकार संदर्भ प्रकार होते हैं (भले ही तत्व का प्रकार आदिम हो), इसलिए array
वैरिएबल (जो स्टैक पर है) केवल किसी ऑब्जेक्ट का संदर्भ है, और ऑब्जेक्ट आमतौर पर ढेर पर जाते हैं।
विशेष रूप से, एक छोटा सा परिवर्तन की कल्पना:
byte[] someMethod() {
byte[] array = { 0, 0 };
return array;
}
तो सरणी ढेर पर आवंटित किए गए थे, क्या लौटे संदर्भ का उल्लेख करना होगा?
यह ढेर में संग्रहीत किया जाएगा