מה עליכם לדעת על Java Virtual Machine?



בלוג זה יעסוק בפירוט את הרעיון של מכונה וירטואלית java עם מרכיבי הארכיטקטורה שלה והבדלים מרכזיים בין JVM, JRE ו- JDK

שפה הייתה ענקית בתעשיית ה- IT במשך זמן רב מאוד. יש לו כמה מושגים מהשורה הראשונה שהופכים אותו לטוב יותר משאר שפת התכנות. מושג כזה הוא המכונה הווירטואלית של Java, במאמר זה נלמד על ההיבטים השונים של מכונה וירטואלית בפירוט. להלן הנושאים הנדונים בבלוג זה:

מהי Java Virtual Machine?

מכונה וירטואלית של ג'אווה היא מכונה מופשטת בלתי תלויה בפלטפורמה המספקת סביבת זמן ריצה בה מבוצע קוד בתים ג'אווה.





זהו חלק מסביבת זמן ריצה של Java הממיר את קוד הביצה של Java לשפה הקריאה במכונה. הראשי שיש לנו בתוכנית Java נקראת למעשה על ידי המכונה הווירטואלית של Java.

יישומים של ניתוח נתונים גדולים

jvm - מכונה וירטואלית של java - edureka

מדוע אנו זקוקים למכונה וירטואלית של Java?

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



  • טוען את הקוד
  • אימות קוד
  • ביצוע הקוד
  • הוא מספק את סביבת זמן הריצה ליישומים
  • אזור זיכרון
  • סט הרשמה
  • מספק ערימה לאיסוף אשפה
  • דיווח על השגיאות הקטלניות
  • מספק מעמד פורמט קובץ

עם כל הפעולות הללו, המכונה הווירטואלית של ג'אווה היא חלק בלתי נפרד מהפיתוח של ג'אווה. בואו ננסה להבין איך זה עובד בעזרת ארכיטקטורת המכונות הווירטואליות של Java.

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

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

ClassLoader

זו תת מערכת המשמשת לטעינת קבצי מחלקה. בכל פעם שאנחנו מריצים תוכנית בג'אווה, היא נטענת לראשונה על ידי ClassLoader. הפונקציה העיקרית כוללת אתחול, קישור וטעינה. להלן מעמיסי הכיתה המובנים בג'אווה.



    • Bootstrap ClassLoader - זהו מעמד העל של Extension ClassLoader אשר טוען את הקובץ rt.jar.

    • סיומת ClassLoader - הוא טוען את קבצי הצנצנות שנמצאים בספריה.

    • מערכת / יישום ClassLoader - הוא טוען את קבצי הכיתות משביל הכיתה.

    • מבצע טעינה - ראשית classLoader טוען את קבצי ה- class ומייצר את הנתונים המתאימים בפורמט הבינארי שנשמר באזור השיטה.

      מעבר על ערך לעומת מעבר על ידי
    • מבצע קישור - לאחר הטעינה הוא מכין, מאמת ומקבל רזולוציה. JVM מקצה את הזיכרון למשתני מחלקות ומאתחל את הזיכרון לערכי ברירת מחדל. זה מבטיח את נכונות הקובץ .class וכאשר האימות נכשל, אנו מקבלים את שגיאת החריגה בזמן ריצה.

    • אתחול - כל המשתנים הסטטיים מוקצים עם הערכים שלהם המוגדרים בבלוק הקוד בשלב זה.

זיכרון JVM

  • אזור שיטה - הוא מאחסן את המבנים עבור כל מחלקה כמו קוד, נתוני שדה, מאגר קבוע של זמן ריצה, נתוני שיטה וכו '.

  • ערימה - אובייקטים מוקצים בזמן הריצה בערימה.

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

  • מחשבים אישיים - יש לו את הכתובת או את המיקום של ה- JVMinstruction שמתבצעת.

  • ערימות שיטה מקומית - כל השיטות המקוריות המשמשות ביישומים קיימות בערימות השיטות המקוריות.

  • מנוע ביצוע - מנוע ביצוע מכיל מעבד וירטואלי, מתורגמן ו- JIT מַהְדֵר.

  • שיטה ילידית מִמְשָׁק - זה זה מספק.

    ניתוח קובץ ה- XML ​​ב- Java

עכשיו, אחרי שהבנו את הארכיטקטורה של ה- JVM, בואו נסתכל על תהליך הביצוע ואוסף הקוד.

תהליך ביצוע

השלבים הבאים מתרחשים בזמן ביצוע והידור של קוד Java.

  • השיטה העיקרית נשמרת בקובץ יחיד ושיטות אחרות נשמרות בקבצים שונים.
  • לאחר ההידור, הוא יספק קבצי .class תואמים אשר יקבלו את קוד בתים ללא קישור, בניגוד ל- C.
  • במהלך הביצוע, קבצי המחלקה מאומתים על כל הפרה באמצעות Classloader.
  • לאחר מכן, קוד הביץ מומר לקוד המכונה המקורי המקביל. זו גם הסיבה שג'אווה איטית יחסית.

עכשיו, כשאנחנו יודעים, איך הביצוע עובד, בואו נסתכל על ההבדל בין JDK, JRE ו- JVM.

ההבדל בין JDK, JRE ו- JVM

להלן כמה הבדלים חשובים בין JDK , JVM ו- JRE.

  1. JDK מייצג ערכת פיתוח Java ו- JRE מייצג סביבת זמן ריצה של Java.
  2. JDK מיועד לפיתוח ואילו JRE מיועד לסביבת זמן הריצה.
  3. JVM הוא חלק חיוני ב- JDK וב- JRE להפעלת כל תוכנית Java.
  4. JVM הוא חלק בלתי נפרד מתכנות Java ומספק עצמאות לפלטפורמה.

זה מביא אותנו לסוף מאמר זה בו למדנו על המכונה הווירטואלית של Java בפירוט. אני מקווה שברור לך עם כל מה ששותף איתך במדריך זה.

אם מצאת מאמר זה ב- “Java Virtual Machine” רלוונטי, עיין במאמר Edureka , חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפרוסים ברחבי העולם.

אנו כאן כדי לעזור לך בכל שלב בדרכך ולהביא תוכנית לימודים המיועדת לסטודנטים ואנשי מקצוע המעוניינים להיות מפתח Java. הקורס נועד לתת לך יתרון לתכנות ג'אווה ולהכשיר אותך למושגי ג'אווה מרכזיים ומתקדמים יחד עם מסגרות ג'אווה שונות כמו Hibernate & Spring.

אם אתה נתקל בשאלות כלשהן, אל תהסס לשאול את כל השאלות שלך בקטע ההערות של 'Java Machine Virtual' והצוות שלנו ישמח לענות.