‏عادل | مبرمج
‏عادل | مبرمج

@AdelDeveloperX

8 تغريدة 71 قراءة Jul 18, 2023
ازاى ال Data بتتخزن فى ال Memory ؟!
ويعنى ايه Stack ويعنى ايه Heap ؟!
خلينا فى الاول نعرف ان ال Memory ( اقصد بيها هنا ال RAM ) بتتكون من مجموعة اقسام بس اللى هنهتم بيهم فى المقالة دى هما ال Stack وال Heap ( والتقسيمة دى بتكون حاجه Logical واللى بيحددها هو ال Operating system )…
(1)
خلينا بقا فى الاول نبدء بأسهل حاجه وهو اننا عرفنا ال Variable ده
int age = 15 ;
وعايزين نعرف ازاى هيتخزن فى ال RAM
لو ركزنا شوية على ال Variable ده هنلاحظ ان نوعه int ومن فهمنا لل Data types هنعرف ان ال int ده primitive data type يعنى حجمه بيكون ثابت وهو فى ال Java حجمه 4…
(2)
✅ فمن هنا نستنتج ان اى حاجه حجمها ثابت هتتخزن فى ال Stack والحاجات اللى حجمها ثابت زى ال int وال double وال float
ولو مثلا بنخزن int فهيتحجز مكان حجمه 4 بايت لل Variable ده والحجم المحجوز هيتغير باختلاف ال Data type اللى انت بتخزنها
خلاص كدا فهمنا ايه وظيفة ال Stack…
(3)
◀️ خلينا دلوقتى نروح ونضرب مثال تانى
احنا دلوقتى عرفنا ال Variable ( اسمه Object بمعنى اصح بس ده للتوضيح بس ) ده
String name = "ahmed" ; 
وعايزين نعرف ازاى هيتخزن فى ال RAM
لو ركزنا شوية على ال Variable ده هنلاحظ ان نوعه String ومن فهمنا لل Data types هنعرف ان ال String…
(4)
فهنروح نكلم ال RAM ونقولها احنا عايزين نخزن ال Variable ده اللى اسمه name فهيا هتقولك ده حجمه متغير وانا عندى مشكلة ان ال Stack مينفعش يتخزن فيها حاجه حجمها مش ثابت ( او بمعنى اصح حجمها بيتحسب فى ال run time بناء على حجم الداتا اللى هتتخزن جواها )
(5)
بس فى نفس الوقت هتقولك الحل لمشكلتك دى عندى وهو ان انا عندى مكان تانى بيتخزن فيه الحاجات اللى حجمها مش ثابت والمكان الثانى ده اسمه ال Heap
وهتقولك بردو انا هحجزلك مكان لل Variable ده فى ال Heap بس المكان ده مش هيكون محدود بمساحة معينة ( يعنى مش زى المثال اللى ذكرناه فى ال…
(6)
بس فى نفس الوقت هروح اعملك مؤشر فى ال Stack بيشاور على المكان المحجوز لحفظ ال Variable اللى اسمه name
والمؤشر ده هيكون اسمه name وده اللى هيستخدم علشان نوصل للمكان اللى هيتخزن فيه ال name
(7)
◀️ وكتلخيص للى قولناه فى المقالة دى :
✅ال Heap بيتخزن فيه اى حاجه حجمها مش ثابت Non-Primitive data types ( بيتحسب فى ال run time حسب حجم الداتا اللى هتتخزن فيه ) زى ال Objects او ال String او ال Array وهكذا
✅ ال Stack بيتخزن فيه ال Variables اللى حجمها ثابت (…

جاري تحميل الاقتراحات...