الجافا في سطور
بداية الجافا
الجافا لغة برمجة تابعة لشركة صن مايكروسيستم
الجافا بدأت سنة 1991م في مختبرات شركة صن
وقد كان يعمل عليها James Gosling
وسميت مبدأياً بلغة أواك oak
نسبة إلى شجرة بلوط كانت تطل على نافذة جيمس
سميت بعد ذلك باسم Green أخيراً استقر اسمها على جافا
أصدرت صن أول إصدارة من لغة جافا سنة 1996م
وهذا هو تاريخ الميلاد الحقيقي للغة جافا
لماذا جافا؟
خروج جافا إلى العالم يعتبر حدث مدوي في عالم البرمجة
وذلك لأنها أضافت مفاهيم قلبت موازين لغات البرمجة
واحتوت على دعم لعدة مجالات جديدة في البرمجة
من أهم المفاهيم التي أضافتها الجافا إلى عالم البرمجة:
1- الآلة الافتراضية(virtual machine)
2- الخيوط Threads
كما احتوت الجافا على مجموعة من الحزم packages
التي خدمت المستخدم في عدة مجالات منها
الشبكات-معالجة الصور الرقمية-الحسابات الكبيرة … إلخ
و امتازت الجافا بدعمها الكامل للبرمجة الكائنية object orinted programming
والذي أهلها للقيام بمشاريع كبيرة لا حصر لها
استفادت الجافا من مفاهيم كانت موجودة سابقاً
مثل جامع النفايات garbage collector
كما استفادت من لغتي c و c++ في بناء هيكليتها
ماهي الآلة الافتراضية؟
مفهوم الآلة الافتراضية من المفاهيم التي أضافتها الجافا إلى البرمجة
ثم انتشرت بعد ذلك كمفهوم رئيسي في لغات البرمجة
واليوم يعتبر من الشروط الرئيسية لولادة لغات برمجة جديدة
المشكلة التي أدت إلى ولادة الآلة الافتراضية:
تتركز في أن لغات البرمجة السابقة
كانت تسمح للمبرمج بأداء الكثير من العمليات
التي قد تأدي إلى أضرار شديدة بجهاز الحاسوب بدون أي مراقبة أو محاسبة
مبدأ عمل الآلة الافتراضية:
يقوم مبدأ عمل الآلة الافتراضية
على إيجاد طبقة وسيطة بين التعاد hardware والبرمجيات software
تعمل هذه الطبقة على وضع قوانين للتعامل بين العتاد والبرمجيات
بحيث تنهي أو تحد من الإضرار بالعتاد
آلية عمل الآلة الافتراضية:
عندما تنتهي من كتابة شيفرة code الجافا
وتقوم بعملية compile فإنك لن تحصل على ملف ثنائي binary
يعمل مباشرة على جهاز الحاسوب
وإنما ستحصل على ملف يحتوي على شيفرة خاصة تسمى byte code
هذه الشيفرة تقوم الآلة الافتراضية بتحويلها أوامرها إلى أوامر يفهمها الحاسوب
لهذا فأنت لا تستطيع تشغيل شيفرة الجافا بدون وجود آلة افتراضية على جهازك
الأنظمة التي توجد لها آلة افتراضية:
Windows, Mac, Unix (Linux, FreeBSD, etc.)
saloris , AS/400, Palm OS, Psion etc.
نستطيع أن نقول أنه من الصعب جداً
بل يكاد أن يكون مستحيل أن تقوم ببناء فايروس بلغة الجافا
ماهو جامع النفايات؟
الجافا لكي تستطيع إدارة الموارد بشكل فعال
استفادت من مفهوم جامع النفايات والذي هو عبارة عن خيط يعمل في الذاكرة
مهمته الرئيسية هو البحث عن الكائنات التي لا يحتاجها النظام
وإعادتها إلى نظام التشغيل ليستفيد منها
أو إعادة استصلاحها لكي تستفيد منها الآلة الافتراضية
وهذا يعتمد على خوارزمية معقدة
ما هي الخيوط؟
الخيط هو جزء من العملية process
الفكرة التي تبنتها جافا
في نظم التشغيل العملية تستهلك الكثير من الموارد
كما تأخذ الكثير من الوقت في عملية إنشائها
لهذا قررت لغة جافا أن تقوم بتجزيء العملية إلى وحدة أصغر منها
وسميت هذه الوحدة بالخيوط
وهذه هي البداية الفعلية لولادة مصطلح خيط
تعدد الخيوط:
تمكنك لغة الجافا من إنشاء عدد لا محصور من الخيوط
والتي تعمل جنباً إلى جنب
فبالإضافة إلى أن جافا أوجدت مفهوم الخيط
فإنها أنشأت مفهوم تعدد الخيوط
حيث يتكون البرنامج الواحد في جافا من مجموعة من الخيوط
التي تعمل على التوازي مع بعضها بدون أي مشاكل تذكر
مشاكل تعدد الخيوط:
صحيح أن الخيوط توفر الموارد
لكنها إن أسيء استخدامها قد تؤدي إلى تضييع الموارد
ومن أهم المشاكل التي يواجهها مستخدمي الخيوط
1- التوقف إلى الأبد deadlock
2- الانتظار الطويل(الجوع للعمل) Starvation
3- العمل إلى الأبد Livelock
ببساطة إما أن تتعلم الخيوط بشكل جيد
أو تستعين بمحترف في جافا
أو انسى موضوع الخيوط
ماهي إصدارات جافا؟
1- إصدارة سطح المكتب Java Platform, Standard Edition (J2SE)
2- إصدارة الجوال Java Platform, Micro Edition (J2ME)
3- إصدارة الويب Java Platform, Enterprise Edition (J2EE)
استثناءات الجافا من البرمجة الكائنية:
استثنت من مفاهيم البرمجة الكائنية
1- الوراثة المتعددة multiple inheritance
2- إعادة كتابة العمليات operator overloading
وذلك لمنع التضارب الذي تسببه هاتان الخاصيتان
هذه المقالة كنت كتبتها لويكي الفريق العربي للبرمجة
لكن لم تنشر لتعطل الويكي نفسه
فكانت من نصيب مدونتي
أتمنى أن تكون حازت على رضاكم
تحياتي
مقالة رائعة وموجزة عن الجافا.. أشكرك بعنف
مقالة جميلة
جزاك الله خير
مجموعة من زملائي عملو فيرس بالجافا بس في الحقيقة كان بأستخدام المثود exec وهندللها اوامر دوس وضحكو علي الباقي وافقسو في الآخر
دمت في رعاية الله
العفو عقبة
أبو عوف لم أفهم منك بالضبط هل تم الفايروس أم لا؟؟
على كل حال لست أستبعد أي شيء لكنه ليس بالأمر السهل مطلقاً
تحياتي
تم الفيرس ولكنه من لا يفقه في الجافا يظنه بالجافا ولكنه ببعض أوامر الدوس
حضرتك عارف الميثود exec التي نكتب بها اوامر الدوس في برنامج الجافا عندما نريد التعامل مع نظام التشغيل أستخدموها وكتبو بها أوامر تخريبية هذا كل الامر
آسف علي اللخبطة إلي عملتها
بالتوفيق
اهاااااااااا
نستطيع القول أن هذا خارج نطاق الفايروسات الحقيقية
أو يمكننا تعديل القول بأنك لا يمكنك برمجة فيروسات مباشرة
تحياتي
معلومات جيدة ورائعة ومفيدة تشكر عليها
العفو
موقع جدا رائع ومقال جميل لكن اود معرفة كيف يمكنني ان اجري معالجة على الصور الملونة وايجاد المدرج التكراري لها باستخدام طبعا لغة جافا
يمكنك الإطلاع على الروابط التالية من مدونتي قد تفيدك
معالجة الصور الرقمية 1
معالجة الصور الرقمية 2
أي أسئلة أنا جاهز
تحياتي
مقال جيد لكنك لم تتحدث عن أضرار الجافا
بالنسبة لموضوع الأضرار
فلا يمكن أن نقول أضرار ربما كانت عيوب كلمة أكثر مناسبة
على كل أكبر عيب في الإصدارات الخاصة بجافا هو البطء
لكن هذا العيب تقلص مع الإصدارات الجديدة من اللغة
هناك عيب آخر لا أنكره
الجافا ليست باللغة السهلة مثل باسيك
لكنها أيضاً ليست باللغة الصعبة
أتمنى من أي أحد يرى أن هناك عيوب أخرى
أن يشاركنا إياها
تحياتي
رائع جدا جدا..
كلما قرأت أكثر عن الجافا ازداد حبي لها 🙂
أذكر أنني قرأت ذات مرة أن كلمة جافا هي اسم لقهوة كان يحتسيها بعض المبرمجين 😀
شكرا لك
صحيح نسيت أن أسألك
ماهو المحرر الذي تنصحني باستعماله بدلا من الكرييتور؟
هناك كلام كثير حول التسمية
لكني لا أعرف الصواب فيها
لذا لن أفتي 🙂
بالنسبة للمحرر استخدمي notebad++
على كل أعتقد أنك تعنين بيئة العمل IDE
طبعاً سأنصحك بحبيب قلبي eclipse
هناك من سيقول NetBeans
لكنه ليس بكفأ
على كل أحياناً استخدمه في بعض الأعمال
تحياتي