Java 8 - Ikhtisar

JAVA 8 adalah rilis fitur utama pengembangan bahasa pemrograman JAVA. Versi awalnya dirilis pada 18 Maret 2014. Dengan rilis Java 8, Java menyediakan dukungan untuk pemrograman fungsional, mesin JavaScript baru, API baru untuk manipulasi waktu tanggal, API streaming baru, dll.

Fitur baru

  • Lambda expression - Menambahkan kemampuan pemrosesan fungsional ke Java.

  • Method references- Merujuk fungsi dengan namanya alih-alih memanggilnya secara langsung. Menggunakan fungsi sebagai parameter.

  • Default method - Antarmuka memiliki implementasi metode default.

  • New tools - Alat dan utilitas kompilator baru ditambahkan seperti 'jdeps' untuk mengetahui dependensi.

  • Stream API - API aliran baru untuk memfasilitasi pemrosesan pipa.

  • Date Time API - Peningkatan tanggal waktu API.

  • Optional - Penekanan pada praktik terbaik untuk menangani nilai null dengan benar.

  • Nashorn, JavaScript Engine - Mesin berbasis Java untuk mengeksekusi kode JavaScript.

Perhatikan cuplikan kode berikut.

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));
   }
}

Jalankan programnya untuk mendapatkan hasil sebagai berikut.

Sort using Java 7 syntax:
[ Kalpesh Mahesh Naresh Ramesh Suresh ]
Sort using Java 8 syntax:
[ Kalpesh Mahesh Naresh Ramesh Suresh ]

Di sini sortUsingJava8() Metode menggunakan fungsi sortir dengan ekspresi lambda sebagai parameter untuk mendapatkan kriteria pengurutan.