JVM (Java Virtual Machine) היא מכונה מופשטת. זהו מפרט המספק סביבת זמן ריצה שבה ניתן להפעיל קוד בייט של java.
JVMs זמינים עבור פלטפורמות חומרה ותוכנה רבות (כלומר, JVM תלוי בפלטפורמה).
מה זה JVM
זה:
- מפרט שבו מצוינת העבודה של Java Virtual Machine. אבל ספק היישום הוא עצמאי לבחור את האלגוריתם. היישום שלו סופק על ידי אורקל וחברות אחרות.
- יישום היישום שלו ידוע בשם JRE (Java Runtime Environment).
- מופע זמן ריצה בכל פעם שאתה כותב פקודת java בשורת הפקודה כדי להפעיל את מחלקת java, נוצר מופע של JVM.
מה שזה עושה
ה-JVM מבצע את הפעולה הבאה:
- טוען קוד
- מאמת קוד
- מבצע קוד
- מספק סביבת זמן ריצה
JVM מספק הגדרות עבור:
- אזור זיכרון
- פורמט קובץ כיתה
- סט רישום
- ערימת אשפה שנאספה
- דיווח שגיאה חמור וכו'.
ארכיטקטורת JVM
בואו נבין את הארכיטקטורה הפנימית של JVM. הוא מכיל מטען כיתות, אזור זיכרון, מנוע ביצוע וכו'.
1) Classloader
Classloader היא תת-מערכת של JVM המשמשת לטעינת קבצי מחלקה. בכל פעם שאנו מפעילים את תוכנית ה-Java, היא נטען תחילה על ידי ה-classloader. ישנם שלושה מטענים מובנים ב-Java.
//Let's see an example to print the classloader name public class ClassLoaderExample { public static void main(String[] args) { // Let's print the classloader name of current class. //Application/System classloader will load this class Class c=ClassLoaderExample.class; System.out.println(c.getClassLoader()); //If we print the classloader name of String, it will print null because it is an //in-built class which is found in rt.jar, so it is loaded by Bootstrap classloader System.out.println(String.class.getClassLoader()); } }בדוק את זה עכשיו
תְפוּקָה:
sun.misc.Launcher$AppClassLoader@4e0e2f2a null
אלו הם מעמיסי הכיתה הפנימיים שמסופקים על ידי Java. אם ברצונך ליצור מחלק מחלקה משלך, עליך להרחיב את מחלקה ClassLoader.
10 מתוך 60
2) אזור כיתה (שיטה).
Class(Method) Area מאחסן מבנים לפי מחלקה כגון מאגר קבוע של זמן הריצה, נתוני שדה ושיטה, הקוד של המתודות.
3) ערימה
זהו אזור נתוני זמן הריצה שבו מוקצים אובייקטים.
gimp שמור כ-jpeg
4) מחסנית
Java Stack מאחסנת מסגרות. היא מכילה משתנים מקומיים ותוצאות חלקיות, ומשחקת חלק בהפעלת השיטה והחזרה.
לכל שרשור יש ערימת JVM פרטית, שנוצרה במקביל לשרשור.
מסגרת חדשה נוצרת בכל פעם שמתודה מופעלת. מסגרת נהרסת כאשר הפעלת השיטה שלה מסתיימת.
5) רישום מונה תוכניות
פנקס PC (מונה תוכניות) מכיל את הכתובת של הוראת המכונה הווירטואלית של Java המתבצעת כעת.
6) מחסנית שיטה מקורית
הוא מכיל את כל השיטות המקוריות המשמשות באפליקציה.
7) מנוע ביצוע
זה מכיל:
8) ממשק מקורי של Java
Java Native Interface (JNI) היא מסגרת המספקת ממשק לתקשורת עם יישום אחר שנכתב בשפה אחרת כמו C, C++, Assembly וכו'. Java משתמשת במסגרת JNI כדי לשלוח פלט לקונסולה או ליצור אינטראקציה עם ספריות מערכת ההפעלה.