English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java 8 (المعروف أيضًا باسم jdk 1.8) هو إصدار رئيسي من لغة Java تم إصداره من قبل شركة Oracle في 18 مارس 2014، ويوفر دعم البرمجة الوظيفية، محرك JavaScript الجديد، API التواريخ والأوقات الجديدة، API Stream الجديد، إلخ.
تم إضافة العديد من الميزات الجديدة إلى Java 8، وسنناقش هنا الأساسية منها فقط:
Lambda Expressions − يسمح Lambda بتمثيل الدالة كمعامل للطريقة (إيراد الدالة كمعامل إلى الطريقة).
Method References − تقدم الاستدلالات واجهة مفيدة تسمح بإيراد الطريقة أو بناء الطريقة الموجودة في فئة أو عنصر Java (مثال) مباشرة. عند استخدامها مع lambda، يمكن أن يجعل بناء اللغة أكثر تآلفًا وسهولة، مما يقلل من الكود المكرر.
Default Methods − هي طريقة دالة افتراضية هي طريقة معينة في واجهة تحتوي على تنفيذ.
أدوات جديدة − تم إضافة أدوات جديدة مثل محرك Nashorn jjs وملخص الاعتماد بين الفئات jdeps.
Stream API − تم إضافة API الجديد Stream (java.util.stream) الذي يقدم أسلوب البرمجة الوظيفي الحقيقي إلى Java.
Date Time API − تم تعزيز معالجة التواريخ والأوقات.
Optional Class − أصبحت فئة Optional جزءًا من مكتبة Java 8، ويُستخدم لمعالجة استثناءات نهاية النطاق.
Nashorn, JavaScript Engine − يقدم Java 8 محرك JavaScript جديد يُدعى Nashorn، مما يسمح لنا بتشغيل تطبيقات JavaScript المحددة على JVM.
لمعرفة المزيد من الميزات الجديدة، يرجى زيارة الموقع الرسمي:ما الجديد في JDK 8
في أمثلة مقالة حول Java 8، نستخدم جميعًا بيئة jdk 1.8، يمكنك استخدام الأمر التالي لعرض إصدار jdk الحالي:
$ java -version java version \ Java(TM) SE Runtime Environment (build 1.8.0_31-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
Java 8 يأمل في تطوير أسلوب برمجة خاص به ويكون مختلفًا عن Java 7، والآتي يوضح مثال على تنسيق البرمجة لـ Java 7 وJava 8:
import java.util.Collections; import java.util.List; import java.util.ArrayList; import java.util.Comparator; public class Java8Tester { public static void main(String args[]){ List<String> names1 = new ArrayList<String>(); names1.add("Google "); names1.add("w3codebox "); names1.add("Taobao "); names1.add("Baidu "); names1.add("Sina "); List<String> names2 = new ArrayList<String>(); names2.add("Google "); names2.add("w3codebox "); names2.add("Taobao "); names2.add("Baidu "); names2.add("Sina "); Java8Tester tester = new Java8Tester(); System.out.println("使用 Java 7 语法: "); tester.sortUsingJava7(names1); System.out.println(names1); System.out.println("使用 Java 8 语法: "); tester.sortUsingJava8(names2); System.out.println(names2); } // 使用 java 7 排序 private void sortUsingJava7(List<String> names){ Collections.sort(names, new Comparator<String>() { @Override public int compare(String s1, String s2) { return s1.compareTo(s2); } }); } // Use java 8 sorting private void sortUsingJava8(List<String> names){ Collections.sort(names, (s1, s2) -> s1.compareTo(s2)); } }
Execute the above script, and the output result is:
$ javac Java8Tester.java $ java Java8Tester Using Java 7 syntax: [Baidu, Google, w3codebox, Sina, Taobao] Using Java 8 syntax: [Baidu, Google, w3codebox, Sina, Taobao]
Next, we will introduce the new features of Java 8 in detail:
Serial Number | Features |
---|---|
1 | Lambda Expressions |
2 | Method References |
3 | Functional Interfaces |
4 | Default Methods |
5 | Stream |
6 | Optional Class |
7 | Nashorn, JavaScript Engine |
8 | New Date-Time API |
9 | Base64 |