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

Οι κορυφαίες 5 δυνατότητες Java 8 για προγραμματιστές

Όταν το Java 8 κυκλοφόρησε πριν από δύο χρόνια, η κοινότητα το δέχτηκε ευγενικά, θεωρώντας το ως ένα τεράστιο βήμα προς τη βελτίωση της Java. Το μοναδικό σημείο πώλησης είναι η προσοχή που δίνεται σε κάθε πτυχή της γλώσσας προγραμματισμού, συμπεριλαμβανομένης της JVM (Java Virtual Machine), του μεταγλωττιστή και άλλων βελτιώσεων του συστήματος βοήθειας.

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

Τι κάνει λοιπόν το Java 8 καταπληκτικό; Ας συζητήσουμε τις κορυφαίες δυνατότητες Java 8 για προγραμματιστές.

1. Εκφράσεις λάμδα

Οι εκφράσεις λάμδα (ή κλείσιμο) είναι δημοφιλείς στον λειτουργικό προγραμματισμό. Μέχρι τώρα, η Java δεν τους υποστήριζε και ως εκ τούτου έλειπε ένας από τους καλύτερους τρόπους για να γράψετε κώδικα. Ακόμα και οι γλώσσες Scala και Clojure που βασίζονται σε JVM είχαν εκφράσεις λάμδα από την πρώτη μέρα.

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

Η χρήση εκφράσεων λάμδα είναι εύκολη. Το μόνο που χρειάζεται να κάνετε είναι να χρησιμοποιήσετε μια λίστα παραμέτρων ή συλλογής διαχωρισμένη με κόμμα και να χρησιμοποιήσετε το σύμβολο "->" μέσα στο σώμα. Ελέγξτε το παρακάτω παράδειγμα για να κατανοήσετε τη σύνταξη της έκφρασης λάμδα.

Arrays.asList ("k", "l", "m"). ForEach (m -> System.out.println (m));

Με την έκφραση lambda, η εκτέλεση απλών βρόχων κατά τη συλλογή θα γίνει πιο ασήμαντη. Δείτε το chase1263070 καθώς περνά από την κίνηση της έκφρασης λάμδα στο Java 8.

2. JavaScript Nashorn

Η Java και η JavaScript δεν ήταν ποτέ καλοί φίλοι, αλλά με την εισαγωγή της Java 8 σε έναν εντελώς νέο κινητήρα JVM JavaScript - Nashorn - η παλίρροια έχει αλλάξει εντελώς.

Ο Nashorn δανείζεται σε μεγάλο βαθμό από τους SpiderMonkey και V8 όσον αφορά την εκτέλεση ταχύτητας. Χρησιμοποιεί επίσης δυνατότητες από το Java 7, όπως το invokeDynamic για ταχύτερη εκτέλεση και βελτιώνει τα μειονεκτήματα των προηγούμενων εκδόσεων Java. Για να μην αναφέρουμε το γεγονός ότι μπορείτε τώρα να γράψετε κώδικα JavaScript απευθείας στον κώδικα Java χωρίς να ανησυχείτε για την ταχύτητα εκτέλεσης και άλλα ζητήματα συμβατότητας.

Με το Nashorn, η διαλειτουργικότητα δεν είναι πια ζήτημα και μπορείτε να δημιουργήσετε όσα κώδικα JavaScript θέλετε.

3. API ημερομηνίας / ώρας

Μια άλλη εξαιρετική προσθήκη στο Java 8 είναι το νέο API ημερομηνίας / ώρας. Δανείζεται σε μεγάλο βαθμό από το Joda time, το οποίο χρησιμοποιήθηκε από προγραμματιστές Java για να αντισταθμίσει την έλλειψη υποστήριξης. Η Java API βιβλιοθήκη είναι πολύπλοκη από τη φύση της, και κάνει τους προγραμματιστές εύκολα να ξεφύγουν. Για να αντισταθμίσει το πρόβλημα, το Java 8 ξαναγράφει ολόκληρο το API από το μηδέν.

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

Ακολουθεί ένα παράδειγμα του API:

// Δημιουργία αντικειμένων.

LocalDateTime a1 = LocalDateTime.now (); // αυτό θα επιστρέψει την τρέχουσα ημερομηνία και ώρα.

LocalDate.parse ("02:53:15"); // Απλή εισαγωγή συμβολοσειράς

4. Ροή API

Μια άλλη νέα συμπερίληψη στο Java 8, χάρη στη σύνταξη lambda, είναι το Stream API, το οποίο επιτρέπει στους προγραμματιστές να συνεργάζονται με τις Συλλογές. Τόσο οι λειτουργίες lambda όσο και το Stream API διευκολύνουν τον λειτουργικό προγραμματισμό στην Java και βοηθούν τους προγραμματιστές να γράψουν πιο ουσιαστικό κώδικα.

Ως προγραμματιστής, πώς σας βοηθά το Stream API; Σας επιτρέπει να εργάζεστε εύκολα με συλλογές και να τις χειρίζεστε ανάλογα, όπως καταμέτρηση, φιλτράρισμα κ.λπ. Επίσης, η λειτουργικότητα lambda σάς βοηθά να γράψετε απλούστερο κώδικα. Απλώς προσέξτε να μην συγχέετε το Stream API με το InputStream και το OutputStream.

Ας δούμε ένα απλό παράδειγμα.

Λίστα myList =

Arrays.asList ("k1", "l1", "m2", "m3", "j4", "j4", "j1", "m1");

η λίστα μου

.ρεύμα()

.filter (s -> s.endsWith ("1"))

. ταξινομημένο ()

.forEach (System.out :: println);

Έξοδος: j1, k1, l1 ,, m1

Όπως μπορείτε να δείτε στο παραπάνω παράδειγμα, μπορείτε να ορίσετε τον υπολογισμό σε μια σειρά βημάτων ή ένθετων λειτουργιών, όπως το Monads.

5. Ταυτόχρονοι συσσωρευτές

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

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

συμπέρασμα

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

Υπάρχουν πολλές δυνατότητες που δεν καλύψαμε στο άρθρο. Μπορείτε να βρείτε ολόκληρη τη λίστα αλλαγών κάνοντας κλικ εδώ. Ποιες δυνατότητες πιστεύετε ότι είναι οι εναλλάκτες παιχνιδιών; Σχολιάστε παρακάτω και ενημερώστε μας!