ההבדל בין JDK, JRE ו־JVM הוא אחת משאלות הראיון הפופולריות. יתכן גם שתתבקש להסביר את JDK vs JRE vs JVM.
ההבדל בין JDK, JRE ו־JVM
JDK, JRE ו־JVM הם מושגים בסיסיים של שפת התכנות ג'אווה. אנו לא משתמשים במושגים אלה בתכנות. אך, כמפתחי ג'אווה, עלינו לדעת עליהם.
1. JDK
קיט פיתוח ג'אווה או JDK הוא הרכיב היסודי של סביבת הג'אווה ומספק את כל הכלים, ה־executables וה־binaries הנדרשים להידרוס, לאתר שגיאות ולהריץ תכנית ג'אווה. JDK הוא תוכנה התואמת לפלטפורמה ולכן יש לנו מתקינים נפרדים עבור מערכות Windows, Mac ו־Unix. ניתן לומר כי JDK הוא תת־קבוצת ה־JRE מאחר והוא מכיל JRE עם מהדר ג'אווה, מפותח תקלות ומחלקות ליבה.
2. JVM
ה-JVM הוא לב השפה של תכנות Java. כאשר אנו מפעילים תוכנית Java, ה-JVM אחראית להמרת קוד הבתים לקוד המכונה המסוים. ה-JVM גם תלויה בפלטפורמה ומספקת פונקציות גרסת Java המרכזיות כגון ניהול זיכרון, איסוף זבל, אבטחה וכו '. ה-JVM היא ניתנת להתאמה אישית וניתן להשתמש באפשרויות Java כדי להתאים אותה. לדוגמה, להקצאת זיכרון מינימלי ומקסימלי ל-JVM. ה-JVM נקראת וירטואלית מכיוון שהיא מספקת ממשק שאינו תלוי במערכת ההפעלה התחתית ובחומרת המכונה. האי תלות הזו מהחומרה וממערכת ההפעלה הופכת את התוכנית Java לכתוב-פעם-רץ-בכל מקום.
3. JRE
JRE היא המימוש של ה-JVM. היא מספקת פלטפורמה לביצוע תוכניות Java. JRE מורכבת מ-JVM, קבצי Java וכיתות אחרות לביצוע כל תוכנית בהצלחה. JRE אינה מכילה כל כלים לפיתוח כמו מהדר Java, מפענח, JShell וכו '. אם רק רוצים לבצע תוכנית Java, ניתן להתקין רק את JRE. אין צורך ב-JDK מכיוון שאין צורך בפיתוח או בהרכבת קוד מקור Java. עכשיו שיש לנו הבנה בסיסית של JDK, JVM ו-JRE, בואו נסתכל על ההבדלים ביניהם.
JDK vs JRE vs JVM
בואו נסתכל על חלק מההבדלים החשובים בין JDK, JRE ו-JVM.
- JDK מיועד לצורך פיתוח בעוד JRE מיועד להרצת תוכניות Java.
- JDK ו-JRE מכילים שניהם JVM כך שנוכל להריץ את תוכניות ה-Java שלנו.
- JVM הוא ליבת שפת התכנות Java ומספק תלת-עצמאות מרכזית.
מהדור ברזולוציה רגעית (JIT)
לפעמים תמצאו JIT לצד JVM, JDK, ו-JRE בספרי לימוד. JIT הוא חלק מה-JVM שמיטיב את התהליך של המרת בתי קוד לשפה ספציפית למכונה. הוא מדרס קודי בתי בלתי דומים באותו זמן ומפחית את הזמן הכולל להמרת בתי קוד לשפה ספציפית למכונה.
Source:
https://www.digitalocean.com/community/tutorials/difference-jdk-vs-jre-vs-jvm