جدول المحتوى
تم تطوير لغة برمجة جافا في البداية للعمل على الأنظمة المدمجة وأجهزة الاستقبال والتلفزيون. لذا، وفقًا للمتطلبات، تم تصميمه في البداية للعمل على منصات متنوعة. على مدار عدة سنوات، تطورت Java لتصبح واحدة من أكثر اللغات شيوعًا المستخدمة لتطوير التطبيقات المستندة إلى الإنترنت.
Java هي لغة غنية بالميزات ومع كل إصدار جديد، فإنها تتطور باستمرار. يتم استخدامه على نطاق واسع عبر مليارات الأجهزة. فيما يلي الملامح الرئيسية للغة جافا
كائنية التوجه Object Oriented
في جافا، كل شيء هو كائن. يمكن توسيع Java بسهولة نظرًا لأنها تعتمد على نموذج الكائن. باعتبارها لغة تحتوي على ميزة التوجه الكائني، تدعم Java المفاهيم الأساسية التالية لـ OOPs (تعدد الأشكال، الوراثة، التغليف، التجريد، الفئات، الكائنات، المثيل، الطريقة، تمرير الرسالة).
منصة مستقلة Platform Independent
على عكس العديد من لغات البرمجة الأخرى بما في ذلك C وC++، عندما يتم تجميع Java، لا يتم تجميعها في جهاز خاص بالنظام الأساسي، بل في كود بايت مستقل عن النظام الأساسي. يتم توزيع رمز البايت هذا عبر الويب ويتم تفسيره بواسطة Java Virtual Machine (JVM) على أي نظام أساسي يتم تشغيله عليه.
تم تصميم Java بطريقة الكتابة مرة واحدة والتشغيل في أي مكان (WORA). لا يعتمد الكود المكتوب بلغة Java بشكل مباشر على نوع الجهاز الذي يعمل عليه. يتم تجميع الكود Java في ByteCode وهو مستقل عن النظام الأساسي. Java Virtual Machine، يمكن لـ JVM فهم رمز البايت. توفر Java أجهزة JVM خاصة بالمنصة. تقع على عاتق JVM الخاص بالمنصة مسؤولية تفسير كود البايت بشكل صحيح وبالتالي يتمتع المطورون بحرية كتابة التعليمات البرمجية دون القلق بشأن الأنظمة الأساسية مثل windows وlinux وunix وMac وما إلى ذلك. هذه الميزة تجعل Java لغة محايدة للنظام الأساسي.
حيث يمكن توزيع كود البايت عبر الويب وتفسيره بواسطة الجهاز الظاهري (JVM) على أي نظام أساسي يتم تشغيله عليه. فهو يجعل كود جافا محمولاً للغاية ومفيدًا للتطبيقات التي تعمل على منصات متعددة.
بسيطة Simple
تم تصميم Java لتكون سهلة التعلم. إذا فهمت المفهوم الأساسي لـ OOP Java، فسيكون من السهل إتقانه.
جافا سهلة التعلم للغاية. إنه يرث العديد من الميزات من C وC++ ويزيل الميزات المعقدة مثل المؤشرات والتحميل الزائد للمشغل والوراثة المتعددة والتخصيص الصريح للذاكرة وما إلى ذلك. ويوفر جمع البيانات المهملة تلقائيًا. مع مجموعة غنية من المكتبات التي تحتوي على آلاف الوظائف المفيدة، تجعل Java حياة المطورين سهلة.
آمنة Secure
بفضل ميزة Java الآمنة، فإنها تمكن من تطوير أنظمة خالية من الفيروسات والتلاعب. تعتمد تقنيات المصادقة على تشفير المفتاح العام.
تعتبر Java آمنة للغاية من حيث التصميم لأنها لا تطلب من المطورين التفاعل مع ذاكرة النظام الأساسي أو نظام التشغيل. Bytecode آمن والعديد من العيوب الأمنية مثل تجاوز سعة المخزن المؤقت وتسرب الذاكرة نادرة جدًا. تتيح آلية معالجة استثناءات Java للمطورين التعامل مع جميع أنواع الأخطاء/الاستثناءات التي يمكن أن تحدث أثناء تنفيذ البرنامج تقريبًا. يساعد التجميع التلقائي للبيانات المهملة في الحفاظ على استخدام مساحة ذاكرة النظام تحت المراقبة.
هندسة محايدة Architecture-neutral
يقوم مترجم Java بإنشاء تنسيق ملف كائن محايد للهندسة المعمارية، مما يجعل التعليمات البرمجية المترجمة قابلة للتنفيذ على العديد من المعالجات، مع وجود نظام وقت تشغيل Java.
يقوم مترجم Java بإنشاء تنسيق ملف كائن محايد للهندسة المعمارية، مما يجعل التعليمات البرمجية المترجمة قابلة للتنفيذ على العديد من المعالجات، مع وجود نظام وقت تشغيل Java. مع التقدم في بنيات المعالج أو المعالجات الخاصة بالجهاز، يظل كود Java مستقلاً عن أي متطلبات محددة للمعالج. نظرًا لأن Java هي معيار مفتوح، فيمكن إعداد JVM محدد لبنية مخصصة. كما هو الحال في الوقت الحاضر، لدينا JVM متاح لجميع المنصات والبنيات الشائعة تقريبًا، كما أن كود جافا مستقل تمامًا. على سبيل المثال، يمكن لبرنامج جافا الذي تم إنشاؤه في جهاز يعمل بنظام Windows أن يعمل على جهاز يعمل بنظام Linux دون أي تعديل في التعليمات البرمجية.
محمولة Portable
كونها محايدة للهندسة المعمارية وعدم وجود جوانب تعتمد على التنفيذ للمواصفات تجعل Java محمولة. المترجم في Java مكتوب بلغة ANSI C مع حدود قابلية النقل النظيفة، وهي مجموعة فرعية من POSIX.
نظرًا لقابلية النقل هذه، حققت Java نجاحًا فوريًا منذ بدايتها. لقد كان مفيدًا بشكل خاص للتطبيقات المستندة إلى الإنترنت حيث تختلف الأنظمة الأساسية من مكان إلى آخر ويمكن استخدام نفس قاعدة التعليمات البرمجية عبر منصات متعددة. لذلك كان التعاون بين المطورين سهلاً عبر مواقع متعددة.
قوية Robust
تبذل Java جهدًا للتخلص من المواقف المعرضة للأخطاء من خلال التركيز بشكل أساسي على التحقق من أخطاء وقت الترجمة والتحقق من وقت التشغيل. تعد مجموعة البيانات المهملة التلقائية، وإدارة الذاكرة القوية، وعدم وجود مؤشرات، وعدم الوصول المباشر إلى ذاكرة النظام، ومعالجة الاستثناءات، ومعالجة الأخطاء بعضًا من الميزات الرئيسية التي تجعل Java لغة قوية وقوية يمكن الاعتماد عليها.
متعدد مؤشرات الترابط Multithreaded
مع خاصية تعدد مؤشرات الترابط في Java، من الممكن كتابة برامج يمكنها تنفيذ العديد من المهام في وقت واحد. تتيح ميزة التصميم هذه للمطورين إنشاء تطبيقات تفاعلية يمكن تشغيلها بسلاسة.
يحتوي البرنامج متعدد الخيوط على جزأين أو أكثر يمكن تشغيلهما بشكل متزامن ويمكن لكل جزء التعامل مع مهمة مختلفة في نفس الوقت مع الاستخدام الأمثل للموارد المتاحة خاصة عندما يحتوي جهاز الكمبيوتر الخاص بك على وحدات معالجة مركزية متعددة.
حسب التعريف، تعدد المهام هو عندما تشترك عمليات متعددة في موارد معالجة مشتركة مثل وحدة المعالجة المركزية (CPU). يعمل تعدد مؤشرات الترابط على توسيع فكرة تعدد المهام في التطبيقات حيث يمكنك تقسيم عمليات محددة داخل تطبيق واحد إلى سلاسل رسائل فردية. يمكن تشغيل كل من المواضيع بالتوازي. يقوم نظام التشغيل بتقسيم وقت المعالجة ليس فقط بين التطبيقات المختلفة، ولكن أيضًا بين كل سلسلة رسائل داخل التطبيق.
يتيح لك تعدد مؤشرات الترابط الكتابة بطريقة يمكن من خلالها متابعة أنشطة متعددة بشكل متزامن في نفس البرنامج.
مترجمة Interpreted
تتم ترجمة كود Java بايت سريعًا إلى تعليمات الجهاز الأصلي ولا يتم تخزينه في أي مكان. تعد عملية التطوير أكثر سرعة وتحليلية نظرًا لأن الارتباط عبارة عن عملية تدريجية وخفيفة الوزن.
يقع JVM بين مترجم javac والأجهزة الأساسية، ويقوم مترجم javac (أو أي مترجم آخر) بتجميع كود Java في Bytecode، والذي يتم فهمه بواسطة JVM الخاص بالنظام الأساسي. يقوم JVM بعد ذلك بتجميع Bytecode بشكل ثنائي باستخدام تجميع JIT (في الوقت المناسب)، أثناء تنفيذ التعليمات البرمجية.
أداء عالي High Performance
باستخدام برامج التحويل البرمجي Just-In-Time، تتيح Java الأداء العالي. يستخدم JVM مترجم JIT لتحسين وقت تنفيذ البرنامج. فيما يلي بعض التحسينات العامة التي تم إجراؤها بواسطة مترجمي JIT (تضمين الطريقة، وإزالة التعليمات البرمجية المنتهية، والاستدلالات لتحسين مواقع الاتصال، والتعامل المستمر).
موزعة Distributed
تم تصميم Java للبيئة الموزعة للإنترنت.
ديناميكية Dynamic
تعتبر Java أكثر ديناميكية من C أو C++ لأنها مصممة للتكيف مع البيئة المتطورة. يمكن لبرامج Java أن تحمل قدرًا كبيرًا من معلومات وقت التشغيل التي يمكن استخدامها للتحقق من الوصول إلى الكائنات وحلها في وقت التشغيل.