Κατανόηση Java Compiler και Java Virtual Machine - Μέρος 4


Μέχρι τώρα έχουμε περάσει από Κατηγορία εργασίας και κώδικα, Κύρια μέθοδο & Έλεγχο βρόχου στην Java. Εδώ σε αυτήν την ανάρτηση θα δούμε τι είναι ο Java Compiler και η Java Virtual Machine. Τι προορίζονται και τους ρόλους τους.

Τι είναι ο Java Compiler

Η Java είναι μια έντονα πληκτρολογημένη γλώσσα που σημαίνει ότι η μεταβλητή πρέπει να περιέχει το σωστό είδος δεδομένων. Σε μια γλώσσα με έντονη πληκτρολόγηση, μια μεταβλητή δεν μπορεί να περιέχει λάθος τύπο δεδομένων. Αυτό είναι ένα χαρακτηριστικό ασφαλείας που εφαρμόζεται πολύ καλά στη γλώσσα προγραμματισμού Java.

Ο μεταγλωττιστής Java είναι υπεύθυνος για τον έλεγχο των μεταβλητών για τυχόν παραβίαση στη διατήρηση τύπου δεδομένων. Λίγες εξαιρέσεις μπορεί να προκύψουν κατά το χρόνο εκτέλεσης που είναι υποχρεωτική για τη δυνατότητα δυναμικής δέσμευσης της Java. Καθώς εκτελείται το πρόγραμμα Java, μπορεί να περιλαμβάνει νέα αντικείμενα που δεν υπήρχαν πριν, επομένως, για να έχουν κάποιο βαθμό ευελιξίας, επιτρέπονται μερικές εξαιρέσεις στον τύπο δεδομένων που μπορεί να κρατήσει μια μεταβλητή.

Java Compiler σύνολο φίλτρου για εκείνο το κομμάτι κώδικα που δεν θα μεταγλωττιστεί ποτέ εκτός από τα σχόλια. Ο μεταγλωττιστής μην αναλύει τα σχόλια και αφήστε το ως έχει. Ο κώδικας Java υποστηρίζει τρία είδη σχολίων μέσα στο Πρόγραμμα.

1. /* COMMENT HERE */
2. /** DOCUMENTATION COMMENT HERE */
3. // COMMENT HERE

Οτιδήποτε τοποθετείται μεταξύ /* και */ ή /** και */ ή μετά από // αγνοείται από τον Java Compiler.

Ο Java Compiler είναι υπεύθυνος για τον αυστηρό έλεγχο οποιασδήποτε παραβίασης σύνταξης. Ο μεταγλωττιστής Java έχει σχεδιαστεί για να είναι ένας μεταγλωττιστής bytecode, δηλαδή, δημιουργεί ένα αρχείο κλάσης από το πραγματικό αρχείο προγράμματος γραμμένο αποκλειστικά σε bytecode.

Ο μεταγλωττιστής Java είναι το πρώτο στάδιο ασφάλειας. Είναι η πρώτη γραμμή άμυνας όπου ελέγχεται ο έλεγχος για λανθασμένους τύπους δεδομένων στη μεταβλητή. Ένας λάθος τύπος δεδομένων μπορεί να προκαλέσει βλάβη στο πρόγραμμα και εκτός αυτού. Επίσης, ο μεταγλωττιστής ελέγχει εάν κάποιο κομμάτι κώδικα προσπαθεί να επικαλεστεί περιορισμένο κομμάτι κώδικα, όπως private class. Περιορίζει τη μη εξουσιοδοτημένη πρόσβαση σε κώδικα/κλάση/κρίσιμα δεδομένα.

Το Java Compiler παράγει bytecode/αρχεία κλάσης που είναι πλατφόρμας και αρχιτεκτονικά ουδέτερα που απαιτούν την εκτέλεση του JVM και θα εκτελείται κυριολεκτικά σε οποιαδήποτε συσκευή/πλατφόρμα/αρχιτεκτονική.

Τι είναι η Java Virtual Machine (JVM)

Το Java Virtual Machine είναι η επόμενη γραμμή ασφάλειας που βάζει ένα επιπλέον επίπεδο μεταξύ της εφαρμογής Java και του λειτουργικού συστήματος. Επίσης, ελέγχει το αρχείο κλάσης που έχει ελεγχθεί και έχει μεταγλωττιστεί από την Java Compiler, εάν κάποιος παραβίασε το αρχείο/bytecode κλάσης για να περιορίσει την πρόσβαση σε μη εξουσιοδοτημένα κρίσιμα δεδομένα.

Το Java Virtual Machine ερμηνεύει τον bytecode φορτώνοντας το αρχείο κλάσης στη γλώσσα μηχανής.

Η JVM είναι υπεύθυνη για λειτουργίες όπως Φόρτωση και Αποθήκευση, Αριθμητικός Υπολογισμός, Μετατροπή Τύπου, Δημιουργία Αντικειμένου, Χειρισμός Αντικειμένου, Μεταφορά Ελέγχου, Εξαίρεση Εκτόξευσης κ.λπ.

Το μοντέλο εργασίας της Java στο οποίο ο μεταγλωττιστής Java μεταγλωττίζει τον κώδικα σε calssfile/bytecodes και στη συνέχεια Java Virtual Machine εκτελεί το classfile/bytecode. Αυτό το μοντέλο διασφαλίζει ότι ο κώδικας εκτελείται με γρήγορη ταχύτητα και το πρόσθετο επίπεδο εξασφαλίζει ασφάλεια.

Τι πιστεύετε λοιπόν – ο Java Compiler ή η Java Virtual Machine εκτελούν πιο σημαντική εργασία; Ένα πρόγραμμα Java πρέπει ουσιαστικά να τρέχει και μέσω της επιφάνειας (Compiler και JVM).

Αυτή η ανάρτηση συνοψίζει τον ρόλο του Java Compiler και του JVM. Όλες οι προτάσεις σας είναι ευπρόσδεκτες στα σχόλια παρακάτω. Εργαζόμαστε για την επόμενη ανάρτηση \αντικειμενοστρεφής προσέγγιση της Java. Μέχρι τότε μείνετε συντονισμένοι και συνδεδεμένοι με την TecMint. Κάντε like και κοινοποιήστε μας και βοηθήστε μας να διαδοθούμε.