כיצד מאוחסנים משתנים?
כיצד מאוחסנים משתנים?

וִידֵאוֹ: כיצד מאוחסנים משתנים?

וִידֵאוֹ: כיצד מאוחסנים משתנים?
וִידֵאוֹ: Computer Basics 19: How Variables work in Code 2024, נוֹבֶמבֶּר
Anonim

משתנים הם בדרך כלל מְאוּחסָן ב-RAM. עצמו בדרך כלל עוקב אחר הכללים שלעיל (מצביע המוצהר בתוך פונקציה הוא מְאוּחסָן על המחסנית), אבל הנתונים שהם מצביעים עליהם (גוש הזיכרון עצמו או האובייקט שיצרת עם חדש). מְאוּחסָן על הערימה.

באופן דומה אפשר לשאול, היכן מאוחסנים משתנים?

כל המשתנים הגלובליים והסטטיים מאוחסנים בקטע הנתונים, בעוד שהקבועים מאוחסנים בקטע הקוד. משתנים גלובליים יכולים להיות בכמה מקומות, תלוי איך הם מוגדרים - עבור דוגמא , const globals עשויים להיות בחלק לקריאה בלבד של קובץ ההפעלה.

באופן דומה, כיצד משתנים מאוחסנים ב-Java? כל החפצים ב Java הם מְאוּחסָן על הערימה. ה " משתנים " שמכילים הפניות אליהם יכולים להיות במחסנית או שהם יכולים להיכלל באובייקטים אחרים (ואז הם לא באמת משתנים , אלא שדות), מה שמעמיד אותם גם על הערימה. המקטע Heap מכיל אובייקטים (יכול להכיל גם הפניה משתנים ).

השאלה היא גם איך משתנים מאוחסנים בזיכרון?

ה זיכרון חריץ עבור א המשתנה מאוחסן על הערימה או הערימה. זה תלוי בהקשר שבו הוא מוכרז: כל מקומי מִשְׁתַנֶה (כלומר אחד שהוכרז בשיטה) הוא מְאוּחסָן על הערימה. כל סטטי המשתנה מאוחסן בערימה, ללא קשר אם היא מוצהרת בתוך סוג הפניה או סוג ערך.

כיצד מאוחסנים משתנים מקומיים בערימה?

אחסון משתנים מקומיים על לַעֲרוֹם הוא פרט יישום - בעצם אופטימיזציה. אתה יכול לחשוב על זה ככה. כשנכנסים לפונקציה, מקום לכולם משתנים מקומיים מוקצה למקום כלשהו. זה בניגוד ל משתנים מוקצה על הערימה, שכתובותיה הן עצמם מְאוּחסָן באחר משתנים.

מוּמלָץ: