prominent java 8 features with code examples
Μια περιεκτική λίστα και εξήγηση όλων των σημαντικών χαρακτηριστικών που παρουσιάζονται στην έκδοση Java 8 με παραδείγματα:
Η έκδοση Java 8 από την Oracle ήταν μια επαναστατική κυκλοφορία της # 1 πλατφόρμας ανάπτυξης στον κόσμο. Περιλάμβανε μια τεράστια αναβάθμιση στο μοντέλο προγραμματισμού Java στο σύνολό του, μαζί με την εξέλιξη του JVM, της γλώσσας Java και των βιβλιοθηκών με συντονισμένο τρόπο.
Αυτή η έκδοση περιλάμβανε διάφορες δυνατότητες για ευκολία χρήσης, παραγωγικότητα, βελτιωμένο προγραμματισμό Polyglot, ασφάλεια και συνολική βελτιωμένη απόδοση.
Τι θα μάθετε:
- Προστέθηκαν δυνατότητες στην έκδοση Java 8
- Λειτουργικές διεπαφές και εκφράσεις λάμδα
- forEach () Μέθοδος Iterable Interface
- Προαιρετική τάξη
- Προεπιλεγμένες και στατικές μέθοδοι στις διεπαφές
- Αναφορές μεθόδου
- Java Stream API για μαζικές λειτουργίες δεδομένων σε συλλογές
- API ημερομηνίας ώρας Java
- Μηχανή JavaScript ρινοκέρου
- Αποκωδικοποίηση κωδικοποίησης Base64
- Βελτιώσεις API συλλογής
- Αλλαγές / βελτιώσεις API ταυτόχρονης λειτουργίας
- Βελτιώσεις Java IO
- Διάφορες Βασικές Βελτιώσεις API
- συμπέρασμα
Προστέθηκαν δυνατότητες στην έκδοση Java 8
Μεταξύ των σημαντικών αλλαγών, τα ακόλουθα είναι τα αξιοσημείωτα χαρακτηριστικά που προστέθηκαν σε αυτήν την έκδοση.
- Λειτουργικές διεπαφές και Lambda Expressions
- forEach () μέθοδος στο Iterable interface
- Προαιρετική τάξη,
- προεπιλεγμένες και στατικές μεθόδους στο Interfaces
- Αναφορές μεθόδου
- Java Stream API για μαζικές λειτουργίες δεδομένων σε συλλογές
- API ημερομηνίας ώρας Java
- Βελτιώσεις API συλλογής
- Βελτιώσεις API ταυτότητας
- Βελτιώσεις Java IO
- Μηχανή JavaScript ρινοκέρου
- Αποκωδικοποίηση κωδικοποίησης Base64
- Διάφορες βελτιώσεις API πυρήνα
Σε αυτό το σεμινάριο, θα συζητήσουμε σύντομα κάθε μία από αυτές τις δυνατότητες και θα προσπαθήσουμε να εξηγήσουμε κάθε μία από αυτές με τη βοήθεια απλών και εύκολων παραδειγμάτων.
Λειτουργικές διεπαφές και εκφράσεις λάμδα
Το Java 8 εισάγει έναν σχολιασμό γνωστό ως @FunctionalInterface που συνήθως χρησιμοποιείται για σφάλματα επιπέδου μεταγλωττιστή. Συνήθως χρησιμοποιείται όταν η διεπαφή που χρησιμοποιείτε παραβιάζει τις συμβάσεις της λειτουργικής διεπαφής.
Εναλλακτικά, μπορείτε να καλέσετε μια λειτουργική διεπαφή ως διεπαφή SAM ή μια διεπαφή μεθόδου Single Abstract. Μια λειτουργική διεπαφή επιτρέπει ακριβώς μια «αφηρημένη μέθοδο» ως μέλος της.
Παρακάτω δίνεται ένα παράδειγμα λειτουργικής διεπαφής:
@FunctionalInterface public interface MyFirstFunctionalInterface { public void firstWork(); }
Μπορείτε να παραλείψετε τον σχολιασμό, το @FunctionalInterface και η λειτουργική σας διεπαφή θα εξακολουθεί να είναι έγκυρη. Χρησιμοποιούμε αυτόν τον σχολιασμό μόνο για να ενημερώσουμε τον μεταγλωττιστή ότι η διεπαφή θα έχει μία μόνο αφηρημένη μέθοδο.
Σημείωση: Εξ ορισμού, οι προεπιλεγμένες μέθοδοι είναι μη αφηρημένες και μπορείτε να προσθέσετε όσες προεπιλεγμένες μεθόδους στη λειτουργική διεπαφή θέλετε.
Δεύτερον, εάν μια διεπαφή έχει μια αφηρημένη μέθοδο που παρακάμπτει μία από τις δημόσιες μεθόδους του 'java.lang.object', τότε δεν θεωρείται ως αφηρημένη μέθοδος της διεπαφής.
Δίνεται παρακάτω είναι ένα έγκυρο παράδειγμα λειτουργικής διεπαφής.
@FunctionalInterface public interface FunctionalInterface_one { public void firstInt_method(); @Override public String toString(); //Overridden from Object class @Override public boolean equals(Object obj); //Overridden from Object class }
Μια έκφραση Lambda (ή συνάρτηση) μπορεί να οριστεί ως ανώνυμη συνάρτηση, (συνάρτηση χωρίς όνομα και αναγνωριστικό). Οι εκφράσεις λάμδα ορίζονται ακριβώς στο μέρος όπου χρειάζονται, συνήθως ως παράμετρος για κάποια άλλη λειτουργία.
Από διαφορετική οπτική γωνία, το Lambda Expressions εκφράζει περιπτώσεις Λειτουργικές διεπαφές (που περιγράφονται παραπάνω). Η Lambda Expressions εφαρμόζει τη μοναδική αφηρημένη λειτουργία που υπάρχει στη λειτουργική διεπαφή και έτσι εφαρμόζει λειτουργικές διεπαφές.
Η βασική σύνταξη μιας έκφρασης Lambda είναι:
Ένα βασικό παράδειγμα της έκφρασης Lambda είναι:
Η παραπάνω έκφραση παίρνει δύο παραμέτρους x και y και επιστρέφει το άθροισμα x + y. Με βάση τον τύπο δεδομένων των x και y, η μέθοδος μπορεί να χρησιμοποιηθεί πολλές φορές σε διάφορα μέρη. Έτσι, οι παράμετροι x και y θα ταιριάζουν με το int ή τον ακέραιο και το string, και με βάση το περιβάλλον, θα προσθέσει δύο ακέραιους αριθμούς (όταν οι παράμετροι είναι int) ή θα συμπυκνώσει τις δύο συμβολοσειρές (όταν οι παράμετροι είναι μια συμβολοσειρά).
Ας εφαρμόσουμε ένα πρόγραμμα που δείχνει Lambda Expressions.
interface MyInterface { void abstract_func(int x,int y); default void default_Fun() { System.out.println('This is default method'); } } class Main { public static void main(String args()) { //lambda expression MyInterface fobj = (int x, int y)->System.out.println(x+y); System.out.print('The result = '); fobj.abstract_func(5,5); fobj.default_Fun(); } }
Παραγωγή:
Το παραπάνω πρόγραμμα δείχνει τη χρήση του Lambda Expression για προσθήκη σε παραμέτρους και εμφάνιση του αθροίσματος τους. Στη συνέχεια το χρησιμοποιούμε για να εφαρμόσουμε την αφηρημένη μέθοδο 'abstract_fun' που δηλώσαμε στον ορισμό της διεπαφής. Το αποτέλεσμα της κλήσης της συνάρτησης 'abstract_fun' είναι το άθροισμα των δύο ακεραίων που περνούν ως παράμετροι κατά την κλήση της συνάρτησης.
Θα μάθουμε περισσότερα για το Lambda Expressions αργότερα στο σεμινάριο.
forEach () Μέθοδος Iterable Interface
Το Java 8 εισήγαγε μια μέθοδο 'forEach' στη διεπαφή java.lang. Μετατροπή που μπορεί να επαναλάβει τα στοιχεία της συλλογής. Το 'forEach' είναι μια προεπιλεγμένη μέθοδος που ορίζεται στη διεπαφή Iterable. Χρησιμοποιείται από τις κατηγορίες Συλλογής που επεκτείνουν τη διεπαφή Iterable για να επαναλάβουν στοιχεία.
Η μέθοδος 'forEach' λαμβάνει τη λειτουργική διασύνδεση ως μία μόνο παράμετρο, δηλαδή μπορείτε να μεταβιβάσετε το Lambda Expression ως επιχείρημα.
Παράδειγμα της μεθόδου forEach ().
πώς να εκτελέσετε ένα αρχείο jnlp
importjava.util.ArrayList; importjava.util.List; public class Main { public static void main(String() args) { List subList = new ArrayList(); subList.add('Maths'); subList.add('English'); subList.add('French'); subList.add('Sanskrit'); subList.add('Abacus'); System.out.println('------------Subject List--------------'); subList.forEach(sub -> System.out.println(sub)); } }
Παραγωγή:
Έχουμε λοιπόν μια συλλογή θεμάτων, δηλ. SubList. Εμφανίζουμε τα περιεχόμενα της δευτερεύουσας λίστας χρησιμοποιώντας τη μέθοδο forEach που παίρνει το Lambda Expression για να εκτυπώσει κάθε στοιχείο.
Προαιρετική τάξη
Το Java 8 εισήγαγε μια προαιρετική κατηγορία στο πακέτο 'java.util'. Το «Προαιρετικό» είναι μια δημόσια τελική τάξη και χρησιμοποιείται για την αντιμετώπιση του NullPointerException στην εφαρμογή Java. Χρησιμοποιώντας το Προαιρετικό, μπορείτε να καθορίσετε εναλλακτικό κώδικα ή τιμές για εκτέλεση. Χρησιμοποιώντας το Προαιρετικό δεν χρειάζεται να χρησιμοποιείτε πάρα πολλούς μηδενικούς ελέγχους για να αποφύγετε το nullPointerException.
Μπορείτε να χρησιμοποιήσετε την προαιρετική κλάση για να αποφύγετε τον μη φυσιολογικό τερματισμό του προγράμματος και να αποτρέψετε τη διακοπή λειτουργίας του προγράμματος. Η προαιρετική κλάση παρέχει μεθόδους που χρησιμοποιούνται για τον έλεγχο της παρουσίας τιμής για μια συγκεκριμένη μεταβλητή.
Το παρακάτω πρόγραμμα δείχνει τη χρήση της προαιρετικής κλάσης.
import java.util.Optional; public class Main{ public static void main(String() args) { String() str = new String(10); OptionalcheckNull = Optional.ofNullable(str(5)); if (checkNull.isPresent()) { String word = str(5).toLowerCase(); System.out.print(str); } else System.out.println('string is null'); } }
Παραγωγή:
Σε αυτό το πρόγραμμα, χρησιμοποιούμε την ιδιότητα 'ofNullable' της προαιρετικής κλάσης για να ελέγξουμε εάν η συμβολοσειρά είναι μηδενική. Εάν είναι, το κατάλληλο μήνυμα εκτυπώνεται στον χρήστη.
Προεπιλεγμένες και στατικές μέθοδοι στις διεπαφές
Στην Java 8, μπορείτε να προσθέσετε μεθόδους στη διεπαφή που δεν είναι αφηρημένες, δηλαδή μπορείτε να έχετε διεπαφές με εφαρμογή μεθόδου. Μπορείτε να χρησιμοποιήσετε την προεπιλεγμένη και στατική λέξη-κλειδί για να δημιουργήσετε διεπαφές με την εφαρμογή μεθόδου. Οι προεπιλεγμένες μέθοδοι επιτρέπουν κυρίως τη λειτουργικότητα Lambda Expression.
Χρησιμοποιώντας προεπιλεγμένες μεθόδους μπορείτε να προσθέσετε νέες λειτουργίες στις διεπαφές σας στις βιβλιοθήκες σας. Αυτό θα διασφαλίσει ότι ο κωδικός που γράφτηκε για τις παλαιότερες εκδόσεις είναι συμβατός με αυτές τις διεπαφές (δυαδική συμβατότητα).
Ας κατανοήσουμε την προεπιλεγμένη μέθοδο με ένα παράδειγμα:
πώς να καλέσετε μια συνάρτηση στο κύριο python
import java.util.Optional; interface interface_default { default void default_method(){ System.out.println('I am default method of interface'); } } class derived_class implements interface_default{ } class Main{ public static void main(String() args){ derived_class obj1 = new derived_class(); obj1.default_method(); } }
Παραγωγή:
Έχουμε μια διεπαφή που ονομάζεται 'interface_default' με τη μέθοδο default_method () με μια προεπιλεγμένη εφαρμογή. Στη συνέχεια, ορίζουμε μια κλάση 'deriv_class' που εφαρμόζει τη διεπαφή 'interface_default'.
Σημειώστε ότι δεν έχουμε εφαρμόσει μεθόδους διεπαφής σε αυτήν την τάξη. Στη συνέχεια, στην κύρια συνάρτηση, δημιουργούμε ένα αντικείμενο της κλάσης «deriv_class» και καλούμε απευθείας την «προεπιλεγμένη μέθοδο» της διεπαφής χωρίς να χρειάζεται να την ορίσουμε στην τάξη.
Αυτή είναι η χρήση των προεπιλεγμένων και στατικών μεθόδων στη διεπαφή. Ωστόσο, εάν μια τάξη θέλει να προσαρμόσει την προεπιλεγμένη μέθοδο, τότε μπορείτε να παρέχετε τη δική της εφαρμογή, παρακάμπτοντας τη μέθοδο.
Αναφορές μεθόδου
Η δυνατότητα αναφοράς μεθόδου που εισήχθη στο Java 8 είναι μια σύντομη σημείωση για το Lambda Expressions να καλέσει μια μέθοδο λειτουργικής διασύνδεσης. Έτσι, κάθε φορά που χρησιμοποιείτε το Lambda Expression για αναφορά μιας μεθόδου, μπορείτε να αντικαταστήσετε το Lambda Expression με αναφορά μεθόδου.
Παράδειγμα αναφοράς μεθόδου.
import java.util.Optional; interface interface_default { void display(); } class derived_class{ public void classMethod(){ System.out.println('Derived class Method'); } } class Main{ public static void main(String() args){ derived_class obj1 = new derived_class(); interface_default ref = obj1::classMethod; ref.display(); } }
Παραγωγή:
Σε αυτό το πρόγραμμα, έχουμε μια διεπαφή 'interface_default' με μια αφηρημένη μέθοδο 'display ()'. Στη συνέχεια, υπάρχει μια κλάση 'deriv_class' που έχει μια δημόσια μέθοδο 'classMethod' που εκτυπώνει ένα μήνυμα.
Στην κύρια συνάρτηση, έχουμε ένα αντικείμενο για την κλάση και, στη συνέχεια, έχουμε μια αναφορά στη διεπαφή που αναφέρεται σε μια μέθοδο κλάσης «classMethod» μέσω του obj1 (αντικείμενο κλάσης). Τώρα, όταν η οθόνη αφηρημένης μεθόδου καλείται με αναφορά διεπαφής, τότε εμφανίζονται τα περιεχόμενα του classMethod.
Java Stream API για μαζικές λειτουργίες δεδομένων σε συλλογές
Το Stream API είναι μια ακόμη σημαντική αλλαγή που εισήχθη στο Java 8. Το API ροής χρησιμοποιείται για την επεξεργασία της συλλογής αντικειμένων και υποστηρίζει έναν διαφορετικό τύπο επανάληψης. Η ροή είναι μια ακολουθία αντικειμένων (στοιχείων) που σας επιτρέπει να σχεδιάσετε διαφορετικές μεθόδους για να παράγετε τα επιθυμητά αποτελέσματα.
Η ροή δεν είναι δομή δεδομένων και λαμβάνει την εισαγωγή της από συλλογές, πίνακες ή άλλα κανάλια. Μπορούμε να διοχετεύσουμε διάφορες ενδιάμεσες λειτουργίες χρησιμοποιώντας Ροές και οι λειτουργίες τερματικού επιστρέφουν το αποτέλεσμα. Θα συζητήσουμε το API ροής με περισσότερες λεπτομέρειες σε ένα ξεχωριστό εκπαιδευτικό πρόγραμμα Java.
API ημερομηνίας ώρας Java
Το Java 8 εισάγει ένα νέο API ημερομηνίας-ώρας στο πακέτο java.time.
Οι πιο σημαντικές τάξεις μεταξύ αυτών είναι:
- Τοπικός: Απλοποιημένο API ημερομηνίας ώρας χωρίς πολυπλοκότητα χειρισμού ζώνης ώρας.
- Χωρισμένος εις ζώνες: Εξειδικευμένο API ημερομηνίας ώρας για την αντιμετώπιση διαφόρων ζωνών ώρας.
Ημερομηνίες
Το μάθημα ημερομηνίας έχει καταστεί άνευ αντικειμένου στην Java 8.
Ακολουθούν οι νέες τάξεις που παρουσιάζονται:
- Η τάξη LocalDate ορίζει μια ημερομηνία. Δεν έχει καμία αναπαράσταση για ώρα ή ζώνη ώρας.
- Η Τοπική ώρα τάξη ορίζει μια ώρα. Δεν έχει καμία αναπαράσταση για ημερομηνία ή ζώνη ώρας.
- Η τάξη LocalDateTime ορίζει μια ημερομηνία-ώρα. Δεν έχει αναπαράσταση ζώνης ώρας.
Για να συμπεριλάβετε πληροφορίες ζώνης ώρας με λειτουργικότητα ημερομηνίας, μπορείτε να χρησιμοποιήσετε το Lambda που παρέχει 3 κατηγορίες, δηλαδή OffsetDate, OffsetTime και OffsetDateTime. Εδώ η μετατόπιση της ζώνης ώρας αντιπροσωπεύεται χρησιμοποιώντας μια άλλη κλάση - 'ZoneId'. Θα καλύψουμε αυτό το θέμα λεπτομερώς στα επόμενα μέρη αυτής της σειράς Java.
Μηχανή JavaScript ρινοκέρου
Η Java 8 παρουσίασε έναν πολύ βελτιωμένο κινητήρα για JavaScript, δηλαδή το Nashorn που αντικαθιστά τον υπάρχοντα ρινόκερο. Ο Nashorn μεταγλωττίζει άμεσα τον κωδικό στη μνήμη και μετά μεταδίδει τον κωδικό bytec στο JVM βελτιώνοντας έτσι την απόδοση κατά 10 φορές.
Το Nashorn παρουσιάζει ένα νέο εργαλείο γραμμής εντολών - jjs που εκτελεί κώδικα JavaScript στην κονσόλα.
Ας δημιουργήσουμε ένα αρχείο JavaScript 'sample.js' που περιέχει τον ακόλουθο κώδικα.
print (‘Hello, World!!’);
Δώστε την ακόλουθη εντολή στην κονσόλα:
C: Java jjs sample.js
Παραγωγή: Γειά σου Κόσμε!!
Μπορούμε επίσης να εκτελέσουμε προγράμματα JavaScript σε διαδραστική λειτουργία και επίσης να παρέχουμε επιχειρήματα στα προγράμματα.
Αποκωδικοποίηση κωδικοποίησης Base64
Στην Java 8 υπάρχει ενσωματωμένη κωδικοποίηση και αποκωδικοποίηση για κωδικοποίηση Base64. Η κλάση για κωδικοποίηση Base64 είναι java.util.Base64.
Αυτή η τάξη παρέχει τρεις κωδικοποιητές και αποκωδικοποιητές Base64:
- Βασικός: Σε αυτό, η έξοδος αντιστοιχίζεται σε ένα σύνολο χαρακτήρων μεταξύ A-Za-z0-9 + /. Καμία τροφοδοσία γραμμής δεν προστίθεται στην έξοδο από τον κωδικοποιητή και ο αποκωδικοποιητής απορρίπτει οποιονδήποτε άλλο χαρακτήρα εκτός από τα παραπάνω.
- Διεύθυνση URL: Εδώ η έξοδος είναι η διεύθυνση URL και το όνομα αρχείου είναι ασφαλές αντιστοιχίζεται στο σύνολο χαρακτήρων μεταξύ A-Za-z0-9 + /.
- ΜΙΜΟΣ: Σε αυτόν τον τύπο κωδικοποιητή, η έξοδος αντιστοιχίζεται σε φιλική μορφή MIME.
Βελτιώσεις API συλλογής
Το Java 8 πρόσθεσε τις ακόλουθες νέες μεθόδους στο API συλλογής:
- forEachRemaining (Ενέργεια καταναλωτή): Αυτή είναι μια προεπιλεγμένη μέθοδος και είναι για τον Iterator. Εκτελεί την «ενέργεια» για καθένα από τα υπόλοιπα στοιχεία έως ότου επεξεργαστούν όλα τα στοιχεία ή η «ενέργεια» ρίξει μια εξαίρεση.
- Η προεπιλεγμένη μέθοδος για τη συλλογή removeIf (Predicate filter): Καταργεί όλα τα στοιχεία της συλλογής που ικανοποιούν το δεδομένο 'φίλτρο'.
- Spliterator (): Αυτή είναι μια μέθοδος συλλογής και επιστρέφει την παρουσία splitterator την οποία μπορείτε να χρησιμοποιήσετε για να διασχίσετε τα στοιχεία είτε διαδοχικά είτε παράλληλα.
- Η συλλογή χαρτών έχει αντικαταστήσει τις μεθόδους AllAll (), compute () και merge ().
- Η κλάση HashMap με συγκρούσεις Key έχει βελτιωθεί για να βελτιώσει την απόδοση.
Αλλαγές / βελτιώσεις API ταυτόχρονης λειτουργίας
Ακολουθούν οι σημαντικές βελτιώσεις στο ταυτόχρονο API:
- Το ConcurrentHashMap ενισχύεται με τις ακόλουθες μεθόδους:
- υπολογισμός (),
- για κάθε (),
- γιαEachEntry (),
- γιαEachKey (),
- forEachValue (),
- πηγαίνω (),
- μείωση () και
- Αναζήτηση ()
- Η μέθοδος 'newWorkStealingPool ()' για τους εκτελεστές δημιουργεί μια ομάδα κλοπής εργασίας. Χρησιμοποιεί τους διαθέσιμους επεξεργαστές ως επίπεδο παραλληλισμού στόχου.
- Η μέθοδος “completeableFuture” είναι αυτή που μπορούμε να ολοκληρώσουμε ρητά (καθορίζοντας την τιμή και την κατάστασή της).
Βελτιώσεις Java IO
Οι βελτιώσεις IO που έγιναν στο Java 8 περιλαμβάνουν:
- Files.list (διαδρομή διαδρομής): Αυτό επιστρέφει μια ζωντανή ροή, της οποίας κάθε στοιχείο είναι η καταχώριση στον κατάλογο.
- Files.lines (Διαδρομή διαδρομής): Διαβάζει όλες τις γραμμές από μια ροή.
- Files.find (): Αναζητήστε αρχεία στο δέντρο αρχείων ριζωμένο σε ένα δεδομένο αρχικό αρχείο και επιστρέφει μια ροή που συμπληρώνεται από μια διαδρομή.
- BufferedReader.lines (): Επιστρέφει μια ροή με κάθε στοιχείο καθώς οι γραμμές διαβάζονται από το BufferedReader.
Διάφορες Βασικές Βελτιώσεις API
Έχουμε τις ακόλουθες βελτιώσεις API misc:
- Στατική μέθοδος με το Initial (προμηθευτής προμηθευτή) του ThreadLocal για εύκολη δημιουργία παρουσίας.
- Η διεπαφή «Comparator» επεκτείνεται με τις προεπιλεγμένες και στατικές μεθόδους για φυσική σειρά αντίστροφης σειράς κ.λπ.
- Οι κατηγορίες ακέραιου, μακρού και διπλού περιτυλίγματος έχουν μεθόδους min (), max () και sum ().
- Η κλάση Boolean ενισχύεται με μεθόδους logicalAnd (), logicalOr () και logicalXor ().
- Διάφορες μέθοδοι χρησιμότητας εισάγονται στην τάξη Μαθηματικά.
- Το JDBC-ODBC Bridge καταργείται.
- Ο χώρος μνήμης PermGen καταργείται.
συμπέρασμα
Σε αυτό το σεμινάριο, έχουμε συζητήσει τα κύρια χαρακτηριστικά που προστέθηκαν στην έκδοση Java 8. Καθώς το Java 8 είναι μια σημαντική έκδοση από την Java, είναι σημαντικό να γνωρίζετε όλες τις δυνατότητες και τις βελτιώσεις που έγιναν στο πλαίσιο αυτής της έκδοσης.
Αν και η τελευταία έκδοση Java είναι 13, εξακολουθεί να είναι καλή ιδέα να εξοικειωθείτε με τις δυνατότητες Java 8. Όλες οι δυνατότητες που συζητούνται σε αυτό το σεμινάριο εξακολουθούν να υπάρχουν στην τελευταία έκδοση του Java και θα τις συζητήσουμε ως μεμονωμένα θέματα αργότερα σε αυτήν τη σειρά.
Ελπίζουμε ότι αυτό το σεμινάριο θα σας βοηθήσει να μάθετε για διάφορες δυνατότητες Java 8 !!
Συνιστώμενη ανάγνωση
- Εκμάθηση μήκους σειράς Java με παραδείγματα κώδικα
- Java 'αυτό' Λέξη-κλειδί: Εκμάθηση με παραδείγματα κώδικα
- Java Interface και Abstract Class Tutorial με παραδείγματα
- Εκπαιδευτικό πρόγραμμα JAVA για αρχάριους: 100+ πρακτικά εκπαιδευτικά βίντεο Java
- Ανάπτυξη Java: Δημιουργία και εκτέλεση αρχείου Java JAR
- C ++ Vs Java: Top 30 διαφορές μεταξύ C ++ και Java με παραδείγματα
- MongoDB Sort () Μέθοδος με παραδείγματα
- Εξερευνήστε τα βασικά στοιχεία της Java στο σελήνιο με παραδείγματα