|
Πολλοί φίλοι μπορεί να είναι σαν εμένα που χρησιμοποιούν JAVA για μεγάλο χρονικό διάστημα, αλλά η σύνδεση και η διαφορά μεταξύ JDK, JRE και JVM ήταν πάντα ασαφής. Σήμερα θα γράψω αυτό το άρθρο για να ξεκαθαρίσω τη σχέση μεταξύ των τριών.
JDK : Εργαλειοθήκη ανάπτυξης Java. Το JDK είναι ο πυρήνας ολόκληρης της JAVA, συμπεριλαμβανομένου του Java Runtime Envirnment, μιας δέσμης εργαλείων Java (javac/java/jdb, κ.λπ.) και βιβλιοθηκών που βασίζονται σε Java (δηλαδή, τα Java API περιλαμβάνουν rt.jar). Το πιο mainstream JDK είναι το JDK που κυκλοφόρησε η Sun, εκτός από τη Sun, υπάρχουν πολλές εταιρείες και οργανισμοί που έχουν αναπτύξει το δικό τους JDK, όπως ξένες εταιρείες της IBM έχουν αναπτύξει το δικό τους JDK, η εγχώρια Taobao έχει επίσης αναπτύξει το δικό της JDK, διάφοροι οργανισμοί έχουν αναπτύξει το δικό τους JDK για να έχουν κάποια βελτίωση σε ορισμένες πτυχές, να προσαρμοστούν στις δικές τους ανάγκες, όπως το JDK της IBM λέγεται ότι είναι πολύ πιο αποτελεσματικό από το JDK της SUN. Αλλά σε κάθε περίπτωση, πρέπει πρώτα να κατακτήσουμε το βασικό Sun JDK. Υπάρχουν τρεις εκδόσεις του JDK: Το J2SE, τυπική έκδοση, τυπική έκδοση, είναι μια έκδοση που χρησιμοποιούμε συνήθως J2EE, enterpsise edtion, enterprise edition, χρησιμοποιώντας αυτό το JDK για την ανάπτυξη εφαρμογών J2EE J2ME, micro edtion, που χρησιμοποιείται κυρίως για εφαρμογές java σε κινητές συσκευές, ενσωματωμένες συσκευές
Συχνά χρησιμοποιούμε το JDK για να αναφερθούμε στο Java API, το Java API είναι η διεπαφή προγραμματισμού εφαρμογών της Java, στην πραγματικότητα, είναι μερικές java γραμμένες από τους προκατόχους μας, συμπεριλαμβανομένων ορισμένων σημαντικών γλωσσικών δομών και βασικών γραφικών, I/O δικτύου και αρχείων κ.λπ., ονομάζουμε αυτές τις γραμμένες από τους προκατόχους μας στα δικά μας προγράμματα, ως βάση για τη δική μας ανάπτυξη. Φυσικά, υπάρχουν όλο και περισσότερες βιβλιοθήκες τρίτων με καλύτερη απόδοση ή πιο ισχυρά χαρακτηριστικά στη διάθεσή μας.
JRE: Java Runtime Enviromental. Με άλλα λόγια, όλα τα προγράμματα Java πρέπει να βρίσκονται κάτω από το JRE για να εκτελεστούν. Περιλαμβάνει βασικές βιβλιοθήκες JVM και JAVA και αρχεία υποστήριξης. Σε σύγκριση με το JDK, δεν περιλαμβάνει εργαλεία ανάπτυξης - μεταγλωττιστές, προγράμματα εντοπισμού σφαλμάτων και άλλα εργαλεία.
JVM: Java Virtual Mechinal (Εικονική μηχανή JAVA). Το JVM είναι μέρος του JRE, ο οποίος είναι ένας φανταστικός υπολογιστής που υλοποιείται με την προσομοίωση διαφόρων λειτουργιών υπολογιστή σε έναν πραγματικό υπολογιστή. Το JVM έχει τη δική του πλήρη αρχιτεκτονική υλικού, όπως επεξεργαστές, στοίβες, καταχωρητές κ.λπ., και διαθέτει επίσης ένα αντίστοιχο σύστημα εντολών. Η κύρια δουλειά του JVM είναι να ερμηνεύει το δικό του σύνολο εντολών (δηλαδή, bytecode) και να το αντιστοιχίζει στο σύνολο εντολών της τοπικής CPU ή στις κλήσεις συστήματος του λειτουργικού συστήματος. Η γλώσσα Java τρέχει cross-platform, το οποίο είναι στην πραγματικότητα ένα διαφορετικό λειτουργικό σύστημα, χρησιμοποιώντας διαφορετικούς κανόνες χαρτογράφησης JVM για να την κάνει ανεξάρτητη από το λειτουργικό σύστημα και να ολοκληρώσει cross-platform. Το JVM δεν ενδιαφέρεται για τα πηγαία αρχεία Java ανώτερου επιπέδου, ενδιαφέρεται μόνο για τα αρχεία κλάσης που δημιουργούνται από τα αρχεία προέλευσης. Το αρχείο κλάσης αποτελείται από ένα σύνολο εντολών JVM, έναν πίνακα συμβόλων και ορισμένες συμπληρωματικές πληροφορίες. Το παρακάτω σχήμα παρέχει μια καλή επισκόπηση της σχέσης μεταξύ JDK, JRE και JVM:
Η πραγματική κατάσταση της ανάπτυξής μας είναι ότι αφού αναπτύξουμε το δικό μας πρόγραμμα JAVA χρησιμοποιώντας το JDK (call JAVA API), μεταγλωττίζουμε τα αρχεία java κειμένου μας σε bytecode JAVA μέσω του μεταγλωττιστή (javac) στο JDK, εκτελούμε αυτούς τους bytecodes JAVA στο JRE, το JVM αναλύει αυτούς τους bytecodes και τους αντιστοιχίζει στο σύνολο εντολών της CPU ή στις κλήσεις συστήματος του λειτουργικού συστήματος.
|