Ποια είναι τα στοιχεία της αρχιτεκτονικής Java;



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

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

Οι παρακάτω δείκτες θα είναι τα θέματα συζήτησης:





Ας ξεκινήσουμε κατανοώντας τι ακριβώς είναι η Αρχιτεκτονική Java;



Τι είναι η αρχιτεκτονική Java;

Εδώ, θα σας εξηγήσω την αρχιτεκτονική java με απλά βήματα.

  • Στην Java, υπάρχει μια διαδικασία συλλογής και ερμηνείας.
  • Ο κωδικός που γράφτηκε , μετατρέπεται σε κωδικούς byte που γίνεται από το Java Compiler.
  • Οι κωδικοί byte, στη συνέχεια μετατρέπονται σε κωδικό μηχανήματος από την JVM.
  • Ο κωδικός μηχανήματος εκτελείται απευθείας από το μηχάνημα.

Αυτό το διάγραμμα απεικονίζει την εσωτερική λειτουργία ενός κώδικα Java, ή ακριβώς, την Αρχιτεκτονική Java!



JVM - Java Architecture - EdurekaΤώρα, ας σκάψουμε λίγο βαθύτερα στην αρχιτεκτονική java και να μιλήσουμε για διάφορα .

τι είναι μεταβλητό και αμετάβλητο

Συστατικά της αρχιτεκτονικής Java

Υπάρχουν τρία κύρια συστατικά της γλώσσας Java: JVM, JRE και JDK .

Java Virtual Machine, Java Runtime Environment και Java Development Kit αντίστοιχα.

Επιτρέψτε μου να επεξεργαστώ καθένα από αυτά ένα προς ένα:

Εικονική μηχανή Java:

Έχετε ακούσει ποτέ για το WORA; (Γράψτε μία φορά Εκτέλεση οπουδήποτε). Λοιπόν, οι εφαρμογές Java ονομάζονται WORA λόγω της ικανότητάς τους να εκτελούν έναν κώδικα σε οποιαδήποτε πλατφόρμα. Αυτό γίνεται μόνο λόγω του JVM. Το JVM είναι ένα στοιχείο πλατφόρμας Java που παρέχει ένα περιβάλλον για την εκτέλεση προγραμμάτων Java. Το JVM ερμηνεύει τον bytecode σε κώδικα μηχανήματος που εκτελείται στο μηχάνημα στο οποίο εκτελείται το πρόγραμμα Java.

Με λίγα λόγια, η JVM εκτελεί τις ακόλουθες λειτουργίες:

  • Φορτώνει τον κωδικό
  • Επαληθεύει τον κωδικό
  • Εκτελεί τον κωδικό
  • Παρέχει περιβάλλον χρόνου εκτέλεσης

Τώρα, επιτρέψτε μου να σας δείξω την αρχιτεκτονική JVM. Ορίστε!

Εξήγηση:

Φορτωτής κλάσης : Το Class loader είναι ένα υποσύστημα του JVM. Χρησιμοποιείται για τη φόρτωση αρχείων κατηγορίας. Κάθε φορά που εκτελούμε το πρόγραμμα java, ο φορτωτής κλάσης το φορτώνει πρώτα.

Περιοχή μεθόδου τάξης : Είναι μία από τις περιοχές δεδομένων στο JVM, στην οποία θα αποθηκευτούν δεδομένα κλάσης. Οι στατικές μεταβλητές, τα στατικά μπλοκ, οι στατικές μέθοδοι, οι μέθοδοι παρουσίας αποθηκεύονται σε αυτήν την περιοχή.

Σωρός : Ένας σωρός δημιουργείται κατά την εκκίνηση του JVM. Μπορεί να αυξήσει ή να μειώσει το μέγεθος κατά την εκτέλεση της εφαρμογής.

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

Εγγενής στοίβα : Περιλαμβάνει όλες τις εγγενείς μεθόδους που χρησιμοποιούνται στην εφαρμογή σας.

Μηχανή εκτέλεσης:

  • Μεταγλωττιστής JIT
  • Συλλέκτης σκουπιδιών

Μεταγλωττιστής JIT: ο Μεταγλωττιστής Just-In-Time (JIT) είναι μέρος του περιβάλλοντος χρόνου εκτέλεσης. Βοηθά στη βελτίωση της απόδοσης των εφαρμογών Java με τη σύνταξη bytecodes στον κώδικα του μηχανήματος κατά το χρόνο εκτέλεσης. Ο μεταγλωττιστής JIT είναι ενεργοποιημένος από προεπιλογή. Όταν συντάσσεται μια μέθοδος, η JVM καλεί απευθείας τον μεταγλωττισμένο κώδικα αυτής της μεθόδου. Ο μεταγλωττιστής JIT μεταγλωττίζει τον bytecode αυτής της μεθόδου σε κώδικα μηχανήματος, μεταγλωττίζοντας το 'ακριβώς στο χρόνο' για εκτέλεση.

Συλλέκτης σκουπιδιών: Όπως το εξηγεί το όνομα Συλλέκτης σκουπιδιών σημαίνει τη συλλογή του αχρησιμοποίητου υλικού. Λοιπόν, στο JVM αυτή η εργασία γίνεται από τη συλλογή απορριμμάτων. Παρακολουθεί κάθε αντικείμενο που είναι διαθέσιμο στον χώρο σωρού JVM και αφαιρεί τα ανεπιθύμητα.
Ο συλλέκτης απορριμμάτων λειτουργεί σε δύο απλά βήματα γνωστά ως Mark and Sweep:

  • Σήμα - είναι εκεί όπου ο συλλέκτης απορριμμάτων προσδιορίζει ποιο κομμάτι μνήμης χρησιμοποιείται και ποια όχι
  • Sweep - αφαιρεί αντικείμενα που εντοπίστηκαν κατά τη φάση «σήματος».

Περιβάλλον χρόνου εκτέλεσης Java:

Το λογισμικό JRE δημιουργεί ένα περιβάλλον χρόνου εκτέλεσης στο οποίο μπορούν να εκτελεστούν προγράμματα Java. Το JRE είναι το σύστημα στο δίσκο που παίρνει τον κώδικα Java, τον συνδυάζει με τις απαραίτητες βιβλιοθήκες και ξεκινά το JVM για να τον εκτελέσει. Το JRE περιέχει βιβλιοθήκες και λογισμικό που απαιτούνται για την εκτέλεση των προγραμμάτων Java. Το JRE είναι μέρος του JDK (το οποίο θα μελετήσουμε αργότερα), αλλά μπορείτε να το κατεβάσετε ξεχωριστά.

Κιτ ανάπτυξης Java:

Το Java Development Kit (JDK) είναι ένα περιβάλλον ανάπτυξης λογισμικού που χρησιμοποιείται για την ανάπτυξη εφαρμογών και μικροεφαρμογών Java. Περιέχει JRE και διάφορα εργαλεία ανάπτυξης, έναν διερμηνέα / φορτωτή (java), έναν μεταγλωττιστή (javac), έναν αρχειοθέτη (βάζο), μια γεννήτρια τεκμηρίωσης (javadoc) που συνοδεύεται από ένα άλλο εργαλείο.

διαβάστε και γράψτε αρχείο excel στην Ιάβα

Η μπλε περιοχή που φαίνεται στο διάγραμμα είναι JDK. Τώρα, επιτρέψτε μου να επεξεργαστώ τα εργαλεία ανάπτυξης σε όλους σας.

Ιάβα : είναι ο εκκινητής για όλες τις εφαρμογές java.
javac : συμπληρωτής των γλωσσών προγραμματισμού java.
javadoc : είναι η γεννήτρια τεκμηρίωσης API.
δοχείο : δημιουργεί και διαχειρίζεται όλα τα αρχεία JAR.

Προχωρώντας με την αρχιτεκτονική Java, ας καταλάβουμε πώς είναι ανεξάρτητη η πλατφόρμα Java;

Πώς είναι ανεξάρτητη η πλατφόρμα Java;

Πότε καλείται οποιαδήποτε γλώσσα προγραμματισμού ως ανεξάρτητη από την πλατφόρμα; Λοιπόν, εάν και μόνο εάν μπορεί να τρέξει σε όλα τα διαθέσιμα λειτουργικά συστήματα σε σχέση με την ανάπτυξη και τη συλλογή του.
Τώρα, Ιάβα είναι ανεξάρτητη από την πλατφόρμα μόνο λόγω του bytecode. Επιτρέψτε μου να σας πω τι ακριβώς είναι ένας κωδικός bytec; Με απλά λόγια,
Το Bytecode είναι ένας κωδικός του JVM που είναι κατανοητός από μηχανή.
Η εκτέλεση Bytecode στην Java αποδεικνύει ότι είναι γλώσσα ανεξάρτητη από την πλατφόρμα.
Εδώ, θα σας δείξω τα βήματα που εμπλέκονται στη διαδικασία εκτέλεσης java bytecode.

Ακολουθεί η εξήγηση των σχετικών βημάτων:

sample.java → javac (sample. class) → JVM (sample.obj) → τελική έξοδος

πιστοποιημένος προγραμματιστής cloudera για apache hadoop

Ο πρώτος πηγαίος κώδικας χρησιμοποιείται από το java compiler και μετατρέπεται σε αρχείο .class. Ο κωδικός αρχείου κλάσης είναι σε μορφή κώδικα byte και αυτό το αρχείο κλάσης χρησιμοποιείται από την JVM για μετατροπή σε αρχείο αντικειμένου. Μετά από αυτό, μπορείτε να δείτε την τελική έξοδο στην οθόνη σας.

Προχωρώντας στο άρθρο αρχιτεκτονικής Java, ας κατανοήσουμε την έννοια του JIT στην Ιάβα .

JIT στην Ιάβα

Ο μεταγλωττιστής Just In Time, κοινώς γνωστός ως JIT, είναι βασικά υπεύθυνος για τη βελτιστοποίηση απόδοσης εφαρμογών που βασίζονται σε Java κατά το χρόνο εκτέλεσης. Η απόδοση μιας εφαρμογής εξαρτάται από έναν μεταγλωττιστή.
Εδώ είναι ένα απλό διάγραμμα που σας δείχνει την εσωτερική διαδικασία που συνεχίζεται.

JIT Compiler - Αρχιτεκτονική Java - Edureka

Ο μεταγλωττιστής JIT μεταγλωττίζει τον κώδικα byte της μεθόδου σε κώδικα μηχανήματος, μεταγλωττίζοντας τον 'Just In Time' για εκτέλεση. Όταν συντάσσεται μια μέθοδος, η JVM καλεί απευθείας τον μεταγλωττισμένο κώδικα αυτής της μεθόδου.
Ας βουτήξουμε βαθύτερα:
Ο κωδικός byte πρέπει να ερμηνευτεί ή να μεταγλωττιστεί με τις κατάλληλες οδηγίες του μηχανήματος ανάλογα με τις οδηγίες που παρέχονται. Επίσης, αυτά μπορούν να εκτελεστούν άμεσα εάν η αρχιτεκτονική εντολών βασίζεται σε κώδικα byte. Η ερμηνεία του κώδικα byte επηρεάζει την ταχύτητα εκτέλεσης.
Προκειμένου να βελτιωθεί η απόδοση, οι μεταγλωττιστές JIT αλληλεπιδρούν με την Java Virtual Machine (JVM) στο χρόνο εκτέλεσης και συντάσσουν κατάλληλες ακολουθίες bytecode σε εγγενή κώδικα μηχανής (όπως φαίνεται στο διάγραμμα). Κατά τη χρήση ενός μεταγλωττιστή JIT, το υλικό είναι σε θέση να εκτελέσει τον εγγενή κώδικα, σε σύγκριση με το να έχει το JVM να ερμηνεύει την ίδια ακολουθία bytecode επανειλημμένα και να δημιουργεί γενικά έξοδα για τη διαδικασία μετάφρασης.

Με αυτό, έφτασα στο τέλος αυτού του άρθρου σχετικά με την αρχιτεκτονική Java. Ελπίζω ότι τα παραπάνω θέματα προστιθέμενη αξία στις γνώσεις σας Java. Μείνετε συντονισμένοι για περισσότερα άρθρα!

Τώρα που έχετε κατανοήσει τα βασικά της Java, ρίξτε μια ματιά στο από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για μαθητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java. Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Java και να σας εκπαιδεύσει τόσο για τις βασικές όσο και για τις προηγμένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστολογίου 'Java Architecture and its components' και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.