-->
recent

آخر الأخبار

recent
random
جاري التحميل ...
random

شرح لل JGC او Java Garbage Collection

هتكلم في البوست ده عن حاجه مهمه لازم اي حد بيدرس Java يكون عارفها وهي JGC او Java Garbage Collection وازاي ال Memory بتتقسم في جافا 😃.
- في جافا ال GC دي حاجه بتحصل لما يبقى في Object ملهوش Referance طيب يعني ايه 🤔 ؟!.
نجيب الموضوع من الاول ونتكلم جافا بتخزن البيانات ازاي ، جافا بتقسم ال Memory ل Stack و Heap يعني بالظبط ممكن نقول ان نص ال Memory بيبقى Stack والنص التاني Heap ، طيب ليه الكلام ده 😃؟
- عشان لما تعرف Object من Class اسم ال Object بيتخزن في ال Stack وبقيت ال Object بكل حاجه فيه بتتخزن في ال Heap.
وهنا بقى بيجي دور ال Garbage Collector وده اللي بيقوم بعمليه ال Garbage Collection ، ده بيفضل يدور في ال Heap على اي Object متعرف وملوش Referance يعني مش بستخدمه في ال Stack او مش بتستخدمه في البرنامج بتاعك ويمسحه عشان يوفر مساحه في ال Memory 😃.
- طيب هل كل ال Variable بتتخزن كده برضوا ؟
لأ ، ال Premative Datatype زي ال int و float و double وهكذه بتتخزن في ال Stack عشان هي مش Class ليها Reference.
- اما String ده Class عشان كده بيتخزن في ال Heap زي اي Class بتعمله.
-----------------------------------------
طيب دلوقتي نراجع على كل اللي قولناه قبل ما نقول معلومه جديده 👌😃...
1. جافا بتقسم ال Memory ل Stack و Heap ، ال Stack بيتخزن فيه ال Referance وال Heap بيتخزن فيه ال Object.
2. في حاجه اسمها Garbage Collection ودي عمليه بتحصل في ال Java Virtual Machine معناه انها تمسح اي Object ملهوش Referance في ال Stack يعني خلاص مش هستخدمه في البرنامج.
3. ال String ده Class او بنسميه برضوا Referance Datatype بيتخزن برضوا في ال Heap وليه Reference في ال Stack.
دلوقتي بقا نتكلم عن ال String بس عشان هو حاله خاصه مختلفه شويه عن اي Class ، ال String بيتخزن في ال Heap بس في جزء لوحده اسمه String Pool ، نشرح مثال هيوضح اكتر 😃.
نفرض اني عملت "String language = "Java زي ما قولنا language هتتخزن في ال Stack وهتشاور على المكان اللي اتخزن فيه java في ال String Pool اللي هو برضوا جزء من ال Heap.
طيب لو عملت "String language2 = "java كده انا عرفت String تاني فيه نفس القيمه اللي هي java هنا بقا هو هيخزن ال language2 في ال Stack ويخليها تشاور على نفس مكان java اللي في String Pool مش هيعمل قيمه جديده 😃.
ده بيحصل عشان احنا بنستخدم Strings كتير في البرنامج وممكن يكون في كتير منها بنفس القيمه ، وده بيحصل مع String بس اي Class تاني بيتعمله جزء خاص بيه في ال Heap اما String زي ما قولنا هو ليه جزء خاص بيه اصلا اسمه String Pool.
Unknown

مدونة :

مدونة تقنية تحتوى على مجموعة دروس ودورات فى مجالات تقنية مختلفة مثل دروس انظمة التشغيل والبرامج والالعاب وبلوجر وفوتوشوب وتطبيقات اندوريد والربح من الانترنت وغيره من الشروحات المميزة تاست مدونة مستر ابوعلى عام 2013 وبفضل الله نالت اعجاب الكثير مؤسس المدونة مستر ابوعلى مدون مصرى

التعليقات



إذا أعجبك محتوى مدونتنا نتمنى البقاء على تواصل دائم ، فقط قم بإدخال بريدك الإلكتروني للإشتراك في بريد المدونة السريع ليصلك جديد المدونة أولاً بأول ، كما يمكنك إرسال رساله بالضغط على الزر المجاور ...

إتصل بنا

تغريداتي علي التويتر

حمل تطبيقنا

زوار المدونة

Statistics

إحصاءات المدونة

جميع الحقوق محفوظة لـ

محترف التقنية

2017

تصميم:

أحمد شحاتة