Προγραμματισμός

JDK 10: Τι νέο υπάρχει στο Java 10

Το JDK 10, μια εφαρμογή του Java Standard Edition 10, κυκλοφόρησε στις 20 Μαρτίου 2018. Οι βασικές βελτιώσεις περιλαμβάνουν τοπικούς μεταβλητούς τύπους καθώς και βελτιώσεις για τη συλλογή και τη συλλογή απορριμμάτων.

Το JDK 10 έχει προγραμματιστεί να είναι μόνο μια βραχυπρόθεσμη κυκλοφορία και οι δημόσιες ενημερώσεις για το JDK 10 αναμένεται να λήξουν σε έξι μήνες. Το επερχόμενο JDK 11, το Σεπτέμβριο, θα είναι μια έκδοση Java μακροπρόθεσμης υποστήριξης (LTS). Οι κυκλοφορίες LTS αναμένεται κάθε τρία χρόνια.

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

Πού να κατεβάσετε το Java JDK 10

Μπορείτε να κατεβάσετε το JDK 10 από τον ιστότοπο της Oracle.

Νέα και βελτιωμένα χαρακτηριστικά στο JDK 10

Τα βασικά χαρακτηριστικά του JDK 10 περιλαμβάνουν:

  • Συμπεράσματα τοπικών μεταβλητών, για να βελτιώσετε τη γλώσσα Java ώστε να επεκτείνετε τη συμπερίληψη τύπου σε δηλώσεις τοπικών μεταβλητών με αρχικοποιητές.
  • Παράλληλη πλήρης συλλογή απορριμμάτων για τον συλλέκτη απορριμμάτων G1, για τη βελτίωση των καθυστερήσεων χειρότερης περίπτωσης.
  • Κοινή χρήση δεδομένων κλάσης εφαρμογών για τη βελτιστοποίηση του χρόνου εκκίνησης και του αποτυπώματος. Η υπάρχουσα δυνατότητα κοινοποίησης δεδομένων κατηγορίας επεκτείνεται, ώστε οι κλάσεις εφαρμογών να μπορούν να τοποθετηθούν στο κοινόχρηστο αρχείο.
  • Ένας πειραματικός μεταγλωττιστής just-in-time, το Graal, μπορεί να χρησιμοποιηθεί στην πλατφόρμα Linux / x64.
  • Συνειδητοποίηση Docker. Κατά την εκτέλεση σε συστήματα Linux, η Java Virtual Machine (JVM) θα γνωρίζει εάν εκτελείται σε κοντέινερ Docker. Πληροφορίες για το κοντέινερ - ο αριθμός των CPU και η συνολική μνήμη που έχουν εκχωρηθεί στο κοντέινερ - θα εξαχθούν από το JVM αντί να υποβάλει ερώτημα στο λειτουργικό σύστημα. (Ο αριθμός των διαθέσιμων CPU στη διαδικασία Java υπολογίζεται από καθορισμένα σύνολα, μερίδια ή ποσοστώσεις επεξεργαστών.)
  • Τρεις νέες επιλογές JVM, για να δώσουν στους χρήστες κοντέινερ Docker μεγαλύτερο έλεγχο στη μνήμη του συστήματος.
  • Μια διόρθωση σφαλμάτων για τη διόρθωση του μηχανισμού προσάρτησης όταν προσπαθείτε να συνδέσετε από μια διαδικασία κεντρικού υπολογιστή σε μια διαδικασία Java που βρίσκεται σε ένα κοντέινερ Docker.
  • Συντομότεροι χρόνοι εκκίνησης για το εργαλείο jShell REPL, ειδικά όταν χρησιμοποιείται ένα αρχείο εκκίνησης με πολλά αποσπάσματα.
  • Νέα API για καλύτερη δυνατότητα δημιουργίας μη τροποποιήσιμων συλλογών. ο αντίγραφο της,Set.copyOf, και Map.copyOf Οι μέθοδοι δημιουργούν νέες παρουσίες συλλογής από υπάρχουσες παρουσίες. Νέες μέθοδοι toUnmodifiableList, toUnmodifiableSet, και toUnmodifiableMap προστέθηκαν στο Συλλέκτες τάξη στο πακέτο ροής, επιτρέποντας τη συλλογή στοιχείων από μια ροή σε μια μη τροποποιήσιμη συλλογή.
  • Ένα συμπέρασμα τύπου τοπικής μεταβλητής, για να βελτιώσετε τη γλώσσα ώστε να επεκτείνετε τη συμπερίληψη τύπου σε τοπικές μεταβλητές. Σκοπός είναι να μειωθεί η «τελετή» που σχετίζεται με την κωδικοποίηση, διατηρώντας παράλληλα μια δέσμευση για ασφάλεια στατικού τύπου.
  • Μια καθαρή διεπαφή συλλογής απορριμμάτων για τη βελτίωση της απομόνωσης πηγαίου κώδικα διαφορετικών συλλεκτών απορριμμάτων. Οι στόχοι αυτής της προσπάθειας περιλαμβάνουν καλύτερη αρθρωτότητα για τον εσωτερικό κώδικα συλλογής απορριμμάτων στην εικονική μηχανή HotSpot και διευκολύνοντας την προσθήκη ενός νέου συλλέκτη απορριμμάτων στο HotSpot.
  • Παράλληλη πλήρης συλλογή απορριμμάτων για τον συλλέκτη απορριμμάτων G1. Σκοπός είναι να βελτιωθούν οι καθυστερήσεις στη χειρότερη περίπτωση με την εφαρμογή του παραλληλισμού.
  • Ενεργοποίηση του HotSpot για την εκχώρηση σωρού αντικειμένων σε μια εναλλακτική συσκευή μνήμης, όπως μια μονάδα μνήμης NVDIMM, που καθορίζεται από το χρήστη. Αυτό το χαρακτηριστικό προβλέπει ότι τα μελλοντικά συστήματα ενδέχεται να έχουν ετερογενείς αρχιτεκτονικές μνήμης.
  • Ενεργοποίηση του μεταγλωττιστή Just-in-Time με βάση το Grall Java για χρήση σε πειραματικό τρόπο στην πλατφόρμα Linux / x64.
  • Ενοποίηση των αποθετηρίων του δάσους JDK σε ένα μοναδικό αποθετήριο, για τον εξορθολογισμό της ανάπτυξης. Η βάση κώδικα μέχρι τώρα έχει χωριστεί σε πολλαπλά repos, γεγονός που μπορεί να προκαλέσει προβλήματα στη διαχείριση πηγαίου κώδικα.
  • Κοινή χρήση δεδομένων κλάσης εφαρμογών, για τη μείωση του αποτυπώματος με κοινή χρήση κοινών μεταδεδομένων κλάσης σε όλες τις διαδικασίες. Ο χρόνος εκκίνησης βελτιώνεται επίσης.
  • Νήμα-τοπικές χειραψίες, για την εκτέλεση επιστροφής κλήσης σε νήματα χωρίς την εκτέλεση καθολικού σημείου ασφαλείας VM. Μεμονωμένα νήματα θα μπορούσαν να σταματήσουν αντί για όλα τα νήματα ή χωρίς νήματα.
  • Παροχή ενός προεπιλεγμένου συνόλου πιστοποιητικών αρχής πιστοποιητικού ρίζας στο JDK. Ο στόχος είναι να ανοίξετε πιστοποιητικά ρίζας ανοιχτού κώδικα στο πρόγραμμα Java SE Root CA της Oracle για να κάνετε το OpenJDK πιο ελκυστικό για τους προγραμματιστές.

Ο μακροπρόθεσμος χάρτης πορείας Java

Εδώ είναι αυτό που είπε η Oracle είναι υπό εξέταση για τις επόμενες και μεταγενέστερες εκδόσεις του Java SE:

  • Το Amber Project, το οποίο αποτέλεσε εκκολαπτήριο για μικρότερες γλωσσικές δυνατότητες προσανατολισμένες στην παραγωγικότητα που περιλαμβάνουν συμπεράσματα τοπικού-μεταβλητού τύπου, για μείωση της τελετής που σχετίζεται με τη σύνταξη κώδικα Java βελτιωμένα αθροίσματα, για να βελτιωθεί η εκφραστικότητα του κατασκεύασματος enum επιτρέποντας μεταβλητές τύπου σε enums και πραγματοποιώντας πιο έντονο έλεγχο τύπου για σταθερές enum. και τα υπολείμματα λάμδα, για να ενισχύσουν τη χρηστικότητα των αναφορών λάμδα και μεθόδων.
  • Project Panama, για διασύνδεση JVM και εγγενούς κώδικα, που περιλαμβάνει εγγενή λειτουργία που καλεί από την JVM και εγγενή πρόσβαση δεδομένων από την JVM.
  • Valhalla, ένα έργο επωαστήρα για προχωρημένους Java VM και υποψήφιους με χαρακτηριστικά γλώσσας, συμπεριλαμβανομένων τύπων αξίας και γενικής εξειδίκευσης.
  • Project Loom, για τη μείωση της πολυπλοκότητας στη συγγραφή ταυτόχρονων εφαρμογών. Το σχέδιο απαιτεί την προσθήκη εναλλακτικών εφαρμογών νήματος σε λειτουργία χρήστη, οριοθετημένων συνεπειών και άλλων κατασκευών που περιλαμβάνουν χειρισμό στοίβας κλήσεων. Ο κύριος στόχος αυτής της πρότασης είναι να προσφέρει μια εναλλακτική εφαρμογή των νημάτων, που διαχειρίζονται οι προγραμματιστές γραμμένοι στην Java. Το μοντέλο προγραμματισμού Java των συνηθισμένων νημάτων Java θα διατηρηθεί ενώ η απόδοση βελτιώνεται και το αποτύπωμα μειώνεται.

Με το νέο εξάμηνο πρόγραμμα κυκλοφορίας, οι δυνατότητες που λείπουν μια κυκλοφορία ενδέχεται να καθυστερήσουν μόλις έξι μήνες, όταν βγει η επόμενη κυκλοφορία. Πέρα από ό, τι έχει ανακοινωθεί για το JDK 10, η Oracle δεν έχει δεσμευτεί όταν κάποια από τα νέα προτεινόμενα χαρακτηριστικά θα είναι πραγματικά διαθέσιμα στην Java.