Java Virtual Machine – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
שורה 30:
 
=== אימות ===
ה-JVM מאמתת את ה-Bytecode קודם להרצתו. כלומר, רק סדרות תקינות של הוראות Bytecode יוכלו לרוץ. לדוגמה, הוראת JUMP (הסתעפות) יכולה לכוון רק להוראה הנמצאת באותה הפונקציה. לשימוש במאמת יש תופעת לוואי מבורכת: למרות שה-JVM מבוססת על ארכיקטורה של מחסנית, אין פגיעה בביצועים גם כאשר נעשה שימוש בהידור JIT על גבי פלטפורמות חומרה בארכיטקטורת רגיסטרים{{הערה|1=[http://db.usenix.org/events/vee05/full_papers/p153-yunhe.pdf f31-yunhe.dvi]{{שם קישור נוצר על ידידי בוט}}}}.
 
נוסף על כך, אימות הקוד מבטיח גם שלא יהיה ניתן להשתמש בתבניות [[סיבית|ביט]]ים שרירותיות ככתובות זיכרון. בשיטה זו, אין צורך להשתמש ב-[[MMU]] כדי להגן על הזיכון בפני השחתה שרירותית. מכאן, שה-JVM מאפשרת יישום יעיל של [[זיכרון מוגן]] בפלטפורמות חומרה החסרות MMU.