יתרונות וחסרונות של מכונות וירטואליות של Java

ה-Java Virtual Machine (JVM) היא סביבה המבצעת תוכניות Java. תוכניות Java מורכבות לשפת ביניים הנקראת bytecode, וזה מה שה-JVM מבצע. כל תוכנית הידורית לתוך bytecode יכולה להתבצע בכל פלטפורמה שמותקן עליה JVM. זה הופך את תוכנת Java לתואמת לפלטפורמות מחשוב רבות ושונות. ל-JVM יש כמה יתרונות וחסרונות בולטים שכל מפתח צריך לשקול היטב לפני שהוא משקיע בפיתוח Java.

עצמאות פלטפורמה

ניתן לכתוב Java bytecode פעם אחת ולאחר מכן להפעיל על מספר פלטפורמות. אין צורך להעביר קוד בייט של Java לסביבת חומרה ספציפית מכיוון שהוא פועל ב-Java Virtual Machine. ניתן להריץ כל יישום המורכב לתוך Java bytecode בכל פלטפורמת מחשוב שיש לה Java Virtual Machine.

סרטון היום

בִּטָחוֹן

Java נכתבה מתוך מחשבה על אבטחה. ל-Java Virtual Machine יש תכונות אבטחה מובנות המאפשרות למתכנתים לכתוב תוכניות Java מאובטחות במיוחד. זה גם מונע מתוכנה זדונית לסכן את מערכת ההפעלה (OS) מכיוון שהוא מונע מיישומי Java לקיים אינטראקציה עם משאבי מערכת ההפעלה.

ביצועים

תוכניות Java הפועלות על Java Virtual Machine נוטות לבצע ביצועים איטיים יותר מתוכניות מקבילות הכתובות ב-C++. ניטרליות המערכת של bytecode פועלת כחסרון בכל הנוגע לביצועים. הסיבה לכך היא שאופטימיזציה של קוד מסתמכת במידה רבה על תכונות ספציפיות למערכת. מאחר ש-Java bytecode הוא ניטרלי למערכת, לא ניתן לבצע אופטימיזציה עבור ערכת חומרה מסוימת.

נְכוֹנוּת

תוכנית שמתפקדת, כצפוי, אמורה להיות נכונה. מכיוון שתוכנית Java מסתמכת על ה-Java Virtual Machine כדי להפעיל אותה, ה-JVM חייב להיות נקי משגיאות כדי שהתוכנית תפעל כהלכה. הסתמכות זו על ה-Java Virtual Machine מציגה נקודת כשל אפשרית עבור התוכנית. למרבה המזל, תוכנת Java Virtual Machine מיוצרת בסטנדרטים גבוהים מאוד, ולכן לא סביר שהיא תשלח עם שגיאות כלשהן. בלי קשר, כשל ב-Java Virtual Machine הוא אפשרות שיש לקחת בחשבון.