Java 8 - ภาพรวม
JAVA 8 เป็นฟีเจอร์หลักของการพัฒนาภาษาโปรแกรม JAVA เวอร์ชันเริ่มต้นเปิดตัวเมื่อวันที่ 18 มีนาคม 2014 ด้วยการเปิดตัว Java 8 Java ให้การสนับสนุนสำหรับการเขียนโปรแกรมเชิงฟังก์ชันเอ็นจิ้น JavaScript ใหม่ API ใหม่สำหรับการจัดการเวลาวันที่ API การสตรีมใหม่เป็นต้น
คุณสมบัติใหม่
Lambda expression - เพิ่มความสามารถในการประมวลผลการทำงานให้กับ Java
Method references- การอ้างอิงฟังก์ชันตามชื่อแทนที่จะเรียกใช้โดยตรง ใช้ฟังก์ชันเป็นพารามิเตอร์
Default method - อินเทอร์เฟซที่จะใช้วิธีการเริ่มต้น
New tools - เพิ่มเครื่องมือคอมไพเลอร์และยูทิลิตี้ใหม่เช่น 'jdeps' เพื่อค้นหาการอ้างอิง
Stream API - สตรีม API ใหม่เพื่ออำนวยความสะดวกในการประมวลผลไปป์ไลน์
Date Time API - ปรับปรุงวันเวลา API
Optional - เน้นแนวทางปฏิบัติที่ดีที่สุดเพื่อจัดการกับค่าว่างอย่างเหมาะสม
Nashorn, JavaScript Engine - เอ็นจิ้นที่ใช้ Java เพื่อรันโค้ด JavaScript
พิจารณาข้อมูลโค้ดต่อไปนี้
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("Mahesh ");
names1.add("Suresh ");
names1.add("Ramesh ");
names1.add("Naresh ");
names1.add("Kalpesh ");
List<String> names2 = new ArrayList<String>();
names2.add("Mahesh ");
names2.add("Suresh ");
names2.add("Ramesh ");
names2.add("Naresh ");
names2.add("Kalpesh ");
Java8Tester tester = new Java8Tester();
System.out.println("Sort using Java 7 syntax: ");
tester.sortUsingJava7(names1);
System.out.println(names1);
System.out.println("Sort using Java 8 syntax: ");
tester.sortUsingJava8(names2);
System.out.println(names2);
}
//sort using 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);
}
});
}
//sort using java 8
private void sortUsingJava8(List<String> names) {
Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
}
}
รันโปรแกรมเพื่อรับผลลัพธ์ต่อไปนี้
Sort using Java 7 syntax:
[ Kalpesh Mahesh Naresh Ramesh Suresh ]
Sort using Java 8 syntax:
[ Kalpesh Mahesh Naresh Ramesh Suresh ]
ที่นี่ sortUsingJava8() method ใช้ฟังก์ชัน sort ที่มีนิพจน์แลมบ์ดาเป็นพารามิเตอร์เพื่อรับเกณฑ์การเรียงลำดับ