Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει η Java Virtual Machine (JVM);
Το Java Virtual Machine (JVM) είναι ένα στρώμα αφαίρεσης μεταξύ μιας εφαρμογής Java και της υποκείμενης πλατφόρμας. Όπως υποδηλώνει το όνομα, η JVM λειτουργεί ως "εικονική" μηχανή ή επεξεργαστής. Στα bytecodes που περιλαμβάνουν το πρόγραμμα, επικοινωνούν με μια φυσική μηχανή. Ωστόσο, αλληλεπιδρούν με την JVM.
Η Techopedia εξηγεί την Java Virtual Machine (JVM)
Η JVM επιτρέπει τη μεταφορά φορητότητας Java σε εφαρμογές πλατφόρμας και υλικού ανεξάρτητες. Είναι ένα μεγάλο μέρος της φιλοσοφίας "γράψτε μία φορά, τρέξτε οπουδήποτε (WORA)". Η JVM είναι στην πραγματικότητα μέρος του Java Runtime Environment (JRE). Είναι το JRE (JVM συν κλάσεις βάσης) που επιτρέπει στο Java bytecode να τρέχει σε οποιαδήποτε πλατφόρμα. Τα Bytecodes, τα οποία ερμηνεύονται από την JVM, απλά καλούν τάξεις που βρίσκονται στο JRE όταν πρέπει να εκτελούν πράξεις που δεν μπορούν να κάνουν από μόνοι τους. Ορισμένες ενέργειες, όπως αυτές που απευθύνονται στο υποκείμενο υλικό ή στο λειτουργικό σύστημα, εκτελούνται από την JVM. Οι Bytecodes δεν διαθέτουν λειτουργικότητα από μόνοι τους και χρειάζονται την JVM για να κάνουν πολλά καθήκοντα γι 'αυτούς. Αυτός ο περιορισμός που αντιλαμβάνεται είναι στην πραγματικότητα ένα πλεονέκτημα. Πρώτον, επιτρέπει στα προγράμματα Java να είναι πολύ μικρά σε σύγκριση με άλλα εκτελέσιμα προγράμματα. Δεύτερον, και το πιο σημαντικό, τους επιτρέπει να είναι πολύ φορητές. Δεδομένου ότι κάθε JVM είναι ειδικά σχεδιασμένο για μια συγκεκριμένη πλατφόρμα, ένα πρόγραμμα Java δεν μπορεί να εκτελεστεί σε αυτό εκτός εάν: (1) έχει δημιουργηθεί μια κατάλληλη JVM για αυτό, και (2) Το JVM έχει εγκατασταθεί σε αυτό. Επομένως, η φορητότητα των προγραμμάτων Java εξαρτάται πλήρως από την παρουσία ενός συγκεκριμένου JVM. Η επικοινωνία μεταξύ μιας εφαρμογής και κάθε υποκείμενης πλατφόρμας μπορεί να είναι πολύ εξελιγμένη, αλλά η JVM την χειρίζεται καλά παρέχοντας ένα στρώμα αφαίρεσης μεταξύ των δύο. Ως εκ τούτου, οι προγραμματιστές δεν χρειάζεται να γνωρίζουν τις εμπλεκόμενες λεπτομέρειες για κάθε ζεύγος εφαρμογών-πλατφόρμας.