פרסומת
ה- Java Virtual Machine (JVM) הוא טפטף שמות אמיתי כשאתה מתכנת ב- Java. בניגוד למה שהשם מציין, ניתן להיתקל במכונה הווירטואלית Java ביחס לשפות תכנות אחרות.
באופן כללי, אין צורך לדעת מהי המכונה הוירטואלית של ג'אווה, או אפילו מה היא עושה, בכדי להיות מסוגלים לתכנת ב- Java. מצד שני, היכרות עם פעולתה הפנימית של מכונה אכן עוזרת להגדיל את ההבנה ואת התובנה הכללית שלך.
מאמר זה מעביר את הרעיון של מכונה וירטואלית של ג'אווה, מה היא עושה בשבילך וכמה מהיתרונות והחסרונות החשובים ביותר. למרות שניסיתי לשמור את זה פשוט, ובהחלט יש ספרות מתקדמת יותר בנושא, צפויה הבנה גסה של Java ותכנות.
שפות ברמה גבוהה
הסמנטיקה של שפת תכנות נועדה להיות קרובה לשפה הטבעית שלנו, תוך שמירה על תמציתיות וקלה לפרשנות עבור מכונה. כפי שאתה בטח יודע, שפת התכנות שונה לחלוטין מקוד המכונה, מערכת ההוראות בהן משתמש מחשב לבניית תוכנית ולהפעלה. לזה אנו מכנים שפות ברמה גבוהה; רמה של הפשטה אחת או מרובה מקוד המכונה.
לפני שהוא מסוגל לרוץ, תחילה יש לפרש קוד ברמה גבוהה. הרבה ממשקי תכנות מורכבים מראש (אוסף AOT) עבור פלטפורמה ספציפית. זה הופך את התוכנית ליעילה יותר בזמן ריצה, אך פחות תואמת לפלטפורמות שונות. ג'אווה, לעומת זאת, עובדת עם שפת ביניים הנקראת
קוד יישום Java וה מכונה וירטואלית של ג'אווה.JVM ו- Java Bytecode
כאשר פרויקט ה- Java שלך בונה, הוא מתרגם את קוד המקור (הכלול ב- *.ג'אווה קבצי מקור) לקוד בייט של Java (לרוב הכלול בקובצי * .class). זה מקרב את הקוד ברמה הגבוהה צעד אחד יותר לקוד המכונה, אך עדיין לא ממש שם. קוד יישום זה הוא אוסף של הוראות קומפקטיות; קל יותר לפרש מכונה, אך פחות קריא.
כשאתה מפעיל יישום Java במחשב, בטלפון הנייד או בכל פלטפורמה אחרת המאפשרת Java, למעשה אתה מעביר את קוד ה- Java הזה למכונה Java Virtual. המתורגמן במחשב הווירטואלי Java מתחיל לרוב להרכיב את קוד התצורה כולו בזמן ריצה, בהתאם לעקרונות של מה שנקרא אוסף בדיוק בזמן. זה מייצר את העיכוב האופייני, אם כי לעתים קרובות קל, בעת פתיחת יישום Java, אך בדרך כלל משפר את ביצועי התוכנית בהשוואה ל אוסף פירושים.
היתרון העיקרי של מערכת זו הוא תאימות מוגברת. מכיוון שהיישומים שלך פועלים במכונה וירטואלית במקום ישירות בחומרה שלך, היזם יכול לתכנת ו בנה את היישום שלהם פעם אחת, אשר לאחר מכן ניתן לבצע בכל מכשיר באמצעות יישום של Java Virtual מכונה. עיקרון זה הוליד את סיסמת ג'אווה: "כתוב פעם אחת, רץ לכל מקום.”
מקצוען: תאימות וביטחון מוגבר
מלבד תאימות קוד, מכונה וירטואלית Java כוללת יתרונות אחרים. אחד החשובים שבהם הוא האבטחה היחסית של תוכנות Java כתוצאה ממכונה Java Virtual. אבטחה, כלומר שתוכנית הפועלת במחשב וירטואלי פחות סביר להפריע למערכת ההפעלה של המשתמש או לקבצי נתונים פגומים, אם מתרחשות שגיאות.
Con: יישומים שונים של JVM ו- Debugging
אחת הביקורות העיקריות שנשמעו נגד תאימות הקוד ומכונה וירטואלית Java נובעת מהיישומים הרבים והשונים של האחרונים. אתה מבין, המכונה הוירטואלית של ג'אווה אינה תוכנה אחת. אורקל, הבעלים של ג'אווה, מיישמת את מכשיר הווירטואלי של ג'אווה, אך אנשים אחרים יכולים לעשות את שלהם אם זה יספק טענות מעשיות וחוזיות שונות.
היישומים השונים הללו פירושם שהקוד שלך עשוי לפעול בצורה חלקה במכונה וירטואלית של Java אחת, אך לקרוס ולהישרף על גבי מחשב אחר. אם כי בפועל, אתה יכול לכתוב את הקוד פעם אחת ולהריץ אותו בכל מקום, קוד מורכב יותר לפעמים עדיין יש לבצע ניפוי באפליקציות שונות של מכונות וירטואליות של Java כדי להבטיח פעולה נכונה.
האם יש לך ניסיון בעבודה עם מכונת הווירטואלית Java? אם כן, האם יש כאן משהו שפספסתי שיש להזכיר?
אשראי תמונה: מיכאלו, דוקטזי
אני סופר וסטודנט למדעי המחשב מבלגיה. אתה תמיד יכול לעשות לי טובה עם רעיון טוב למאמר, המלצת ספרים או רעיון למתכון.