Local vs Global Variables وفهم تخزينهم في الذاكرة

x32x01
  • بواسطة x32x01 ||
  • #1

ايه الفرق بين Local Variable و Global Variable في ال Memory؟ 🧠​

هنتكلم عن حاجة مهمة لكل مبرمج وهي الفرق بين Local Variable و Global Variable وإزاي بيأثروا على طريقة التخزين في RAM 💾

كمان هنعرف هل الـVariable Static بيغير حاجة ولا لأ 🔍

تذكير سريع عن الـMemory 📝​

* الـPrimitive Data Types غالبًا بتتخزن في Stack
* الـNon-Primitive Data Types (Reference Types) بتتخزن في Heap
* بس الـPrimitive Data Types ممكن تكون Local وممكن Global

السؤال: هل طريقة التخزين هتفرق بين Local و Global؟ 🤔
الإجابة: ايوة، وهنوضح ده بالتفصيل

Local Variable في ال Stack 🗂️​

خلينا ندي مثال عملي:
Java:
public void add (int numberOne , int numberTwo ){
int sum = numberOne + numberTwo ;
Calculator cal = new Calculator () ;
}
الـStack هيخزن الـFunction ده كده:
  • هيعمل "صندوق" اسمه add
  • هيخزن جواه References للـFunction بس، والكود نفسه في مكان تاني في RAM
  • هيخزن المتغيرات numberOne, numberTwo, sum
  • هيخزن Object من Calculator في الـHeap ويخزن Reference ليه جوا الصندوق

يعني ببساطة: الـPrimitive Data Types لو Local → بتتخزن في Stack لأنها مرتبطة بالـFunction مش بالـClass

Global Variable في ال Heap 🏗️​

لو الـPrimitive Data Type عبارة عن Global Variable:
  • مش مرتبطة بأي Function، لكنها مرتبطة بالـClass بشكل عام
  • أي Object بيتعمل من الـClass ده بيكون الـGlobal Variable جواه → بيتخزن في Heap
  • الـHeap بيخزن كل محتويات الـObject بما فيها الـGlobal Variables
يعني ببساطة: الـPrimitive Data Types لو Global → بتتخزن في Heap

الـStatic Variables 📌​

#$ مكان تخزين الـStatic Variable بيتحدد حسب ارتباطه:
  • لو مرتبط بالـFunction → بيتخزن في Stack
  • لو مرتبط بالـClass → بيتخزن في Heap
#$ الـNon-Primitive Data Types دائمًا → Heap

الخلاصة 🔑​

  • Local Primitive → Stack
  • Global Primitive → Heap
  • Non-Primitive → Heap
  • Static Variable → حسب ارتباطه بالClass أو Function
فهم الفرق ده مهم جدًا لتحسين أداء البرامج وتفادي مشاكل الMemory 💡
 
التعديل الأخير:

المواضيع ذات الصلة

x32x01
الردود
0
المشاهدات
234
x32x01
x32x01
x32x01
الردود
0
المشاهدات
806
x32x01
x32x01
x32x01
الردود
0
المشاهدات
384
x32x01
x32x01
x32x01
الردود
0
المشاهدات
360
x32x01
x32x01
x32x01
الردود
0
المشاهدات
680
x32x01
x32x01
الوسوم : الوسوم
data types global variables heap memory java local variables memory management programming basics ram stack memory static variables
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟

آخر المشاركات

إحصائيات المنتدى
المواضيع
2,388
المشاركات
2,601
أعضاء أكتب كود
574
أخر عضو
الياس
عودة
أعلى