السلام عليكم
هذه حلول بعض الاسئله الخفيفه ، بعض الاسئله لم أعرف لها جواب والآخر حلها يريد شرح طويل ، مع مرور الوقت سننتهي منها باذن الله
What do you know about the garbage collector ?الكل يعرف بأننا نستطيع إنشاء اوبجكت عن طريقة الكيوورد new
ولكن بعد مانكون قد انتهينا من استخدام هذا الاوبجكت كيف نقوم بمسحه ؟ نحتاج مسحه لأن لدينا ميموري محدوده (تخيل أن لديك كلاس كبير جداً مثلاً LinkedList معقده جداً فاعملية انشاء اوبجكت منه سوف تحجز مساحه كبيره )
garbage collection الموجوده في JVM تضمن لنا أنه بعد استخدام هذا الاوبجكت null referencing سوف تقوم JVM بمسح هذا الاوبجكت والتخلص منه . وهنا نكون قد استفدنا من مساحة الميموري وكذلك لم ندخل في متاهات allocation and deallocation التي يعاني منها مبرمجين اللغات التي لاتحتوي على garbage collection ( مثل الرسائل التي تظهر مشكله في الميموري أو انه يحاول الحجز بمكان محجوز مسبقاً ) .
للاستزاده
http://www.artima.com/insidejvm/ed2/gc.htmlWhat is the difference between RMI & Corba ?حسب خبرتي البسيطه جداً بأن RMI remote method invocation تستخدم لعمل distributed computation
في موقع صن هناك tutorial على هذه التقنيه وهو عباره عن حساب قيمة الثابت الرياضي PI .
تخيل بأنك تريد عمل عمليات رياضيه معقده وجهازك لايملك القدره على عملها ، فالحل انك تقوم بعمل هذه العمليات المعقده على جهاز آخر يملك قدرات هائله لمعالجة البيانات ويرجع بالنتيجه . الجميل في الـRMI انك تقوم بعمل هذه العمليات كما لو كان هذا الاوبجكت يعمل في جهازك وهو حقيقة يعمل في سيرفر بعيد عنك ، الاوبجكت الذي نقوم باستدعائه من السيرفر يسمى Remote Object ، هذه فائدة RMI باختصار
CORBA Common Object Request Broker Architecure
تأتي لحل مشكلة heterogeneity في النظم الموزعه ، تخيل أنك في شبكه وانت تعمل على نظام ويندوز والآخر يعمل على نظام سولاريز وتريد الشركه أن تقدم لكم خيارات موحده أو خدمات واحده ، فالـCORBA تقوم بحل مشكلة الاختلاف سواءاً في الهاردوير أو السوفتوير .
CORBA تعمل كـ middleware أي فوق نظام التشغيل وتحت الApplication
Have you ever used HashTable and Dictionary ?الاسئله اسئلة مقابله لذلك سنجيب عن ماهية الاثنتين ، أنا حقيقة لم استخدم ولا وحده منهن في برامجي
لكن دعونا نرى ماهي
Dictionary عباره عن Abstract class وهو الأب للـHashTable يقوم على تمثيل القيم بأساس أنها keys and values وجميعهن أوبجكت
HashTable هو نفس HashMap ولكنه لايقبل null values وكذلك جميع المثدز syncrounized
How does thread synchronization occurs inside a monitor ?لم افهم السؤال جيداً ولكن سأجيب بما فهمت .
عندما نعمل syncrounized keyword على مثد أو على بلوك فإننا نضمن بأن هذه المثد لن يقوم بتنفيذها إلا one thread at a time
الثريد عندما ياتي لـmethod يعمل lock على الاوبجكت ولايفلته إلا بinterrupt or wait
What is the RMI and Socket ?Socket نستطيع القول بأنها برنامج يجعلك تتخاطب مع السيرفر عن طريق إرسال المسج أو الاوبجكت
RMI تحتوي على Socket بالاضافه إلى اشياء أخرى مثل RMI registry & stubs
What is meant by distributed Application ? Why we are using that in our applications ?Distributed application في الApplication التي نعملها فإننا نقوم بعملها على جهاز واحد يملك جميع المقدرات والعتاد للقيام بمهمة برنامجنا
في الـDistributed System نقوم بعمل الApplication على مستوى اكثر من جهاز وتظهر النتائج وكأن البرنامج اشتغل على جهاز واحد وهنا نستفيد أننا قد تفادينا مسألة Centralized الموجوده في الشبكات حالياً ، بمعنى أنه لو حصل عطل في جهاز واحد لن يذهب البرنامج ونبدأ من جديد ،
نحتاجه لأنه قد نحتاج إلى services من اجهزه متعدده أو نريد عمليات في اجهزه بعيده عنا ونريد ان كل جهاز يقوم بمهمه معينه ويسلمها للجهاز الذي يتبعه وهكذا حتى نأتي بالنتائج . مثال على Distributed application methodology هي RMI and CORBA
Explain 2 tier and 3 -tier Architecture ?أها ، على كثر ماقريت عن 3 tier and n tier إلا اجد انني اتوه فيها ، ولكن فلسفتها تقول
ان هناك 3 طبقات
اول طبقه تعبر عن presentation layer وهي طبقة العرض وعادة تكون GUI or dynamic pages
الطبقه الثانيه تكون عباره عن brocess data or problem domain layer ونقوم فيها بحل المشكله وتعريف الclasses المناسبه لهذا البرنامج
الطبقه الثالثه تسمى بالdata access وهي التي نقوم فيها بعمليات الحفظ في قاعدة البيانات واسترجاع المعلومات منها
فعندما نريد تغيير الواجهه نغير فقط في GUI tier ، عندما يأتينا extention جديد للمشكله نغير في process data tier
أتمنى ان تكون اجاباتي شافيه وأرحب بأي ملاحظه او تصحيح أو إثراء للمعلومات وحتى لو كانت بسيطه أو نقاش أو اي شي بس خلونا نتناقش