الفرق بين JDK و JRE و JVM هو أحد الأسئلة الشائعة في المقابلات. قد يُطلب منك أيضًا شرح JDK مقابل JRE مقابل JVM.
الفرق بين JDK و JRE و JVM
JDK و JRE و JVM هي مفاهيم أساسية في لغة برمجة جافا. لا نستخدم هذه المفاهيم في البرمجة بشكل مباشر. ولكن كمطور جافا، يجب أن نعرف عنها.
1. JDK
Java Development Kit المعروف أيضًا بـ JDK هو المكون الأساسي لبيئة جافا ويوفر جميع الأدوات والأوامر والتطبيقات اللازمة لترجمة وتصحيح الأخطاء وتنفيذ برنامج جافا. JDK هو برنامج محدد لنظام التشغيل ولذلك لدينا مثبتات منفصلة لأنظمة Windows و Mac و Unix. يمكننا القول إن JDK هو مجموعة فرعية من JRE حيث يحتوي على JRE مع مترجم جافا ومصحح أخطاء وفئات أساسية.
2. JVM
تشغيل آلة الجافا هو قلب لغة البرمجة جافا. عند تنفيذ برنامج جافا، تكون آلة تشغيل جافا مسؤولة عن تحويل الشيفرة البايتية إلى الشيفرة الخاصة بالجهاز. الآلة الظاهرية جافا أيضًا تعتمد على النظام وتوفر وظائف جافا الأساسية مثل إدارة الذاكرة وجمع النفايات والأمان، إلخ. يمكن تخصيص الآلة الظاهرية جافا ويمكننا استخدام خيارات جافا لتخصيصها. على سبيل المثال، تخصيص الذاكرة الدنيا والذاكرة القصوى للآلة الظاهرية جافا. يُطلق على الآلة الظاهرية جافا ظاهرية لأنها توفر واجهة لا تعتمد على نظام التشغيل وأجهزة الكمبيوتر الأساسية. تجعل هذه الاستقلالية عن الأجهزة ونظام التشغيل البرنامج الجافا قابلًا للكتابة مرة واحدة وتشغيله في أي مكان.
3. بيئة تشغيل جافا (JRE)
بيئة تشغيل جافا (JRE) هي تنفيذ لآلة تشغيل جافا. توفر منصة لتنفيذ برامج جافا. تتكون بيئة تشغيل جافا من آلة تشغيل جافا وملفات تنفيذ جافا وفئات أخرى لتنفيذ أي برنامج بنجاح. بيئة تشغيل جافا لا تحتوي على أي أدوات تطوير مثل مترجم جافا، مصحح الأخطاء، JShell، إلخ. إذا كنت ترغب فقط في تنفيذ برنامج جافا، يمكنك تثبيت بيئة تشغيل جافا فقط. لا تحتاج إلى مجموعة تطوير جافا لأنه لا يتعين تطوير أو تجميع شيفرة المصدر جافا. الآن بعد أن لدينا فهم أساسي لمجموعة تطوير جافا وآلة تشغيل جافا وبيئة تشغيل جافا، دعونا نلقي نظرة على الفارق بينهما.
مقارنة بين مجموعة تطوير جافا (JDK) وبيئة تشغيل جافا (JRE) وآلة تشغيل جافا (JVM)
لنلقي نظرة على بعض الفروق الهامة بين مجموعة تطوير جافا، بيئة تشغيل جافا، وآلة تشغيل جافا.
- JDK مخصص لأغراض التطوير بينما JRE مخصص لتشغيل برامج جافا.
- JDK و JRE يحتويان على JVM بحيث يمكننا تشغيل برنامج جافا الخاص بنا.
- JVM هو قلب لغة برمجة جافا ويوفر استقلالية المنصة.
مترجم في اللحظة الحقيقية (JIT)
أحيانًا ستجد JIT بجانب JVM و JDK و JRE في الكتب الدراسية. JIT هو جزء من JVM يقوم بتحسين عملية تحويل الكود البايتي إلى لغة محددة للجهاز. يقوم بترجمة الكود البايتي المماثل في نفس الوقت ويقلل من الوقت الإجمالي الذي يستغرقه الترجمة من الكود البايتي إلى لغة محددة للجهاز.
Source:
https://www.digitalocean.com/community/tutorials/difference-jdk-vs-jre-vs-jvm