Java

Java είναι το όνομα μιας γλώσσας προγραμματισμού που δημιουργήθηκε από τη Sun Microsystems. Η εταιρεία αυτή εξαγοράστηκε από την Oracle Corporation, η οποία συνεχίζει να την ενημερώνει. Η τελευταία έκδοση είναι η Java 14, η οποία κυκλοφόρησε τον Μάρτιο του 2020. Επιπλέον, οι μόνες υποστηριζόμενες εκδόσεις είναι, η τελευταία έκδοση Long Term Support (LTS) Java 11, που κυκλοφόρησε στις 25 Σεπτεμβρίου 2018- και η Oracle κυκλοφόρησε για την "παλαιά" Java 8 LTS την τελευταία δωρεάν "δημόσια ενημέρωση". Η επόμενη προγραμματισμένη έκδοση LTS είναι η Java 17 (LTS), η οποία έχει προγραμματιστεί για τον Σεπτέμβριο του 2021.

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

Η Java τρέχει σε πολλά διαφορετικά λειτουργικά συστήματα, συμπεριλαμβανομένου του Android, του πιο δημοφιλούς λειτουργικού συστήματος κινητών τηλεφώνων στον κόσμο (ενώ η Java συνεχίζει να χρησιμοποιείται στο Android, ακόμη και από την κατασκευάστρια εταιρεία Google, η οποία δεν προτιμά πλέον τη Java- τώρα η Kotlin είναι η γλώσσα που προτιμά, η οποία μπορεί επίσης να χρησιμοποιηθεί με όλο τον κώδικα Java). Αυτό καθιστά τη Java ανεξάρτητη από τις πλατφόρμες. Το κάνει αυτό κάνοντας τον μεταγλωττιστή της Java να μετατρέπει τον κώδικα σε Java bytecode αντί για κώδικα μηχανής. Αυτό σημαίνει ότι όταν εκτελείται το πρόγραμμα, η Java Virtual Machine ερμηνεύει τον bytecode και τον μεταφράζει σε κώδικα μηχανής.

Έννοιες Java

Η Java αναπτύχθηκε για την επίτευξη πέντε βασικών στόχων. Αυτοί είναι:

  • Η Java πρέπει να είναι εύκολη στην εκμάθηση, αντικειμενοστραφής και κατανεμημένη.
  • Η Java πρέπει να είναι ασφαλής και ισχυρή.
  • Η Java δεν θα πρέπει να εξαρτάται από οποιαδήποτε αρχιτεκτονική ή πλατφόρμα υπολογιστή.
  • Η Java θα πρέπει να λειτουργεί καλά.
  • Η Java θα πρέπει να μπορεί να έχει έναν διερμηνέα γραμμένο γι' αυτήν, να υποστηρίζει παραλληλισμό και να χρησιμοποιεί δυναμική τυποποίηση.

 

Πλατφόρμα Java

Η πλατφόρμα Java αναφέρεται σε μια ομάδα προϊόντων λογισμικού της Sun Microsystems. Η πλατφόρμα χρησιμοποιείται για την ανάπτυξη και την εκτέλεση προγραμμάτων Java. Η πλατφόρμα περιλαμβάνει τη μηχανή εκτέλεσης (που ονομάζεται Java Virtual Machine), η οποία επιτρέπει στα προγράμματα Java να κάνουν το ίδιο πράγμα σε διαφορετικά συστήματα υπολογιστών.

Αυτή η ικανότητα ανάπτυξης λογισμικού σε μια πλατφόρμα και η εκτέλεσή του σε άλλες πλατφόρμες ονομάζεται "ικανότητα διαπλατφορμισμού".

Παράδειγμα προγράμματος Java

Ένα παράδειγμα προγράμματος Java "Hello World":

/** * Αυτό είναι ένα απλό πρόγραμμα σε Java.   * Εμφανίζει στην οθόνη το "Hello World!".   */ class HelloWorld { public static void main(String[] args) { System. out. println("Hello World!"); } }

Τύποι προγραμμάτων Java

Υπάρχουν πολλοί τύποι προγραμμάτων Java που εκτελούνται με διαφορετικό τρόπο:

  • Java Applet - μικρό πρόγραμμα γραμμένο σε Java, το οποίο κατεβαίνει από έναν ιστότοπο και εκτελείται σε ένα πρόγραμμα περιήγησης ιστού σε έναν υπολογιστή-πελάτη.
  • Εφαρμογή - εκτελείται σε έναν υπολογιστή-πελάτη. Εάν είναι online, πρέπει να γίνει λήψη πριν εκτελεστεί.
  • Αρχείο JAR (αρχείο Java) - χρησιμοποιείται για τη συσκευασία αρχείων Java σε ένα ενιαίο αρχείο (σχεδόν ακριβώς όπως ένα αρχείο .zip).
  • Servlet - εκτελείται σε έναν διακομιστή ιστού και βοηθά στη δημιουργία ιστοσελίδων.
  • Εφαρμογή Swing - χρησιμοποιείται για τη δημιουργία μιας εφαρμογής που διαθέτει γραφικό περιβάλλον (παράθυρα, κουμπιά, μενού κ.λπ.).
  • EJB - εκτελείται σε διακομιστή ιστού και χρησιμοποιείται για την ανάπτυξη μεγάλων, σύνθετων ιστότοπων.

Οφέλη

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

  • Η Java απαιτεί την αρχικοποίηση κάθε μεταβλητής. Ορισμένες παλαιότερες γλώσσες, όπως η C, επιτρέπουν στις μεταβλητές να μην αρχικοποιούνται, γεγονός που μπορεί να προκαλέσει τυχαίες αποτυχίες με μυστηριώδη σφάλματα.
  • Η Java απαιτεί κάθε μέθοδος να δηλώνει έναν τύπο επιστροφής - η μέθοδος πρέπει πάντα να επιστρέφει μια τιμή, εκτός αν ο τύπος επιστροφής της είναι void. Αυτό αποτρέπει επίσης τα σφάλματα.
  • Η Java διαθέτει ένα μεγάλο σύνολο κλάσεων και μεθόδων, το API της Java, το οποίο μπορεί να χρησιμοποιηθεί χωρίς να χρειάζεται να αναπτυχθεί τόσο πολύς κώδικας "από το μηδέν".
  • Σε αντίθεση με τη C, οι πρωτόγονοι τύποι της Java, όπως ο int, έχουν πάντα το ίδιο μέγεθος σε αριθμό bits, γεγονός που συμβάλλει στην επίτευξη συμβατότητας μεταξύ διαφορετικών πλατφορμών.
  • Η Java θεωρούνταν παλαιότερα πιο αργή από τη C, αλλά αυτό έχει γίνει λιγότερο σημαντικό τα τελευταία χρόνια, επειδή οι υπολογιστές είναι ταχύτεροι.
  • Η Java διαθέτει χειρισμό εξαιρέσεων που απαιτεί από τον προγραμματιστή να χειρίζεται συνθήκες σφάλματος, όπως σφάλματα εισόδου/εξόδου.
  • Ο κώδικας που έχει μεταγλωττιστεί σε μια πλατφόρμα Java μπορεί να εκτελεστεί σε άλλες πλατφόρμες που υποστηρίζουν Java χωρίς τροποποίηση του πηγαίου κώδικα ή του κώδικα byte. Αυτό σημαίνει ότι κάποιος μπορεί να φτιάξει ένα πρόγραμμα Java για έναν υπολογιστή με Windows και να το τρέξει σε έναν υπολογιστή με Linux ή Mac.

Κριτική

Η Java έχει επίσης επικριθεί. Μερικές από τις επικρίσεις είναι οι εξής:

  • Τα generics προστέθηκαν στη Java με τέτοιο τρόπο ώστε ο υπάρχων κώδικας να συνεχίσει να εκτελείται. Αυτό έγινε με τη χρήση διαγραφής τύπων. Αυτό σημαίνει ότι κατά τη διάρκεια της μεταγλώττισης, ο πραγματικός τύπος ενός γενικού ορίσματος αφαιρείται. Αυτό μπορεί να οδηγήσει τον διερμηνέα της Java να συμπεριφέρεται με απροσδόκητους τρόπους μερικές φορές.
  • Η Java δεν διαθέτει τύπους ακέραιων χωρίς πρόσημο, τους οποίους χρησιμοποιούν κατά κόρον γλώσσες όπως η C. Αυτό σημαίνει επίσης ότι είναι αδύνατη η άμεση ανταλλαγή αριθμητικών δεδομένων μεταξύ προγραμμάτων C και Java. Η κρυπτογραφία βασίζεται επίσης σε τέτοιους τύπους σε κάποιο βαθμό- αυτό καθιστά πιο δύσκολη τη συγγραφή εφαρμογών που χρησιμοποιούν κρυπτογραφία στη Java.
  • Το IEEE έχει ορίσει ένα πρότυπο για την αριθμητική κινητής υποδιαστολής, το IEE 754. Η Java υποστηρίζει μόνο ένα μέρος των χαρακτηριστικών αυτού του προτύπου.

Ερωτήσεις και απαντήσεις

Ερ: Ποιο είναι το όνομα της γλώσσας προγραμματισμού που δημιουργήθηκε από τη Sun Microsystems;


A: Η γλώσσα προγραμματισμού που δημιουργήθηκε από τη Sun Microsystems ονομάζεται Java.

Ερ: Ποιος υποστηρίζει και ενημερώνει σήμερα τη Java;


A: Η Oracle Corporation υποστηρίζει και ενημερώνει τη Java.

Ε: Ποιες είναι οι τρέχουσες εκδόσεις μακροπρόθεσμης υποστήριξης (LTS) της Java;


Α: Οι τρέχουσες εκδόσεις μακροχρόνιας υποστήριξης (LTS) της Java είναι οι εκδόσεις 17, 11 και 8.

Ε: Πότε κυκλοφόρησε η τελευταία έκδοση της Java;


Α: Η τελευταία έκδοση της Java, η έκδοση 19, κυκλοφόρησε τον Σεπτέμβριο του 2022.

Ερ: Υπάρχει άλλη εταιρεία που υποστηρίζει τη Java εκτός από την Oracle;


Α: Ναι, η Eclipse Adoptium υποστηρίζει επίσης τη Java τουλάχιστον μέχρι τον Μάιο του 2026 για την έκδοση 8 και τουλάχιστον μέχρι τον Σεπτέμβριο του 2027 για την έκδοση 17.

Ε: Τι είδους κώδικα χρησιμοποιεί η Java;


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

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


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

AlegsaOnline.com - 2020 / 2023 - License CC3