Java 8, dikeluarkan pada Mac 2014, membawa peningkatan ketara dan ciri baharu kepada bahasa pengaturcaraan Java. Versi ini memperkenalkan konsep pengaturcaraan berfungsi, mempertingkatkan API Java, dan menyediakan pembangun dengan alatan berkuasa untuk menulis kod yang lebih cekap dan ringkas. Dalam artikel ini, kami akan meneroka ciri utama Java 8 dan cara ciri tersebut boleh memanfaatkan proses pembangunan anda.
Ekspresi Lambda mungkin merupakan ciri paling penting yang diperkenalkan dalam Java 8. Ia menyediakan cara yang jelas dan ringkas untuk mewakili satu antara muka kaedah menggunakan ungkapan. Ungkapan Lambda membolehkan anda menganggap fungsi sebagai hujah kaedah atau kod sebagai data.
Contoh:
// Before Java 8 Runnable runnable = new Runnable() { @Override public void run() { System.out.println("Hello from thread"); } }; // With Lambda in Java 8 Runnable runnable = () -> System.out.println("Hello from thread");
Antara muka berfungsi ialah antara muka yang mengandungi hanya satu kaedah abstrak. Mereka boleh mempunyai berbilang kaedah lalai. Java 8 memperkenalkan anotasi @FunctionalInterface untuk menandakan antara muka berfungsi.
Contoh:
@FunctionalInterface interface Converter<F, T> { T convert(F from); } Converter<String, Integer> converter = (from) -> Integer.valueOf(from); Integer converted = converter.convert("123"); System.out.println(converted); // 123
Rujukan kaedah menyediakan ungkapan lambda yang mudah dibaca untuk kaedah yang sudah mempunyai nama. Ia adalah singkatan untuk lambda yang memanggil kaedah khusus itu sahaja.
Contoh:
Person[] people = ...; Arrays.sort(people, Person::compareByAge);
API Strim ialah tambahan utama kepada Java 8. Ia membenarkan operasi gaya berfungsi pada aliran elemen. Strim mewakili jujukan elemen yang mana satu atau lebih operasi boleh dilakukan.
Contoh:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David"); List<String> filteredNames = names.stream() .filter(name -> name.startsWith("C")) .collect(Collectors.toList());
Kelas Pilihan ialah objek bekas yang mungkin mengandungi nilai bukan nol atau tidak. Ini adalah cara untuk menggantikan null dengan penyelesaian yang lebih mantap.
Contoh:
Optional<String> optional = Optional.of("hello"); optional.ifPresent(s -> System.out.println(s.length()));
Kaedah lalai membolehkan kefungsian baharu ditambahkan pada antara muka sedia ada tanpa melanggar pelaksanaan lama antara muka ini.
Contoh:
public interface Vehicle { default void print() { System.out.println("I am a vehicle!"); } }
Java 8 memperkenalkan API tarikh dan masa baharu di bawah pakej java.time. API baharu ini lebih intuitif dan menangani kelemahan java.util.Date dan java.util.Calendar lama.
Contoh:
LocalDate date = LocalDate.now(); System.out.println("Current date: " + date);
Java 8 dilengkapi dengan enjin JavaScript baharu yang dipanggil Nashorn. Ia adalah masa jalan JavaScript berprestasi tinggi yang ringan yang berjalan di atas JVM.
Contoh:
ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("nashorn"); engine.eval("print('Hello, Nashorn!');");
Java 8 kini mempunyai pengekod dan penyahkod terbina untuk pengekodan Base64.
Contoh:
String encodedString = Base64.getEncoder().encodeToString("Hello, World!".getBytes()); System.out.println(encodedString);
Java 8 membawa anjakan paradigma dalam pengaturcaraan Java dengan ciri pengaturcaraan berfungsi dan penambahbaikan API. Dengan memanfaatkan ciri ini, pembangun boleh menulis kod yang lebih mudah dibaca, boleh diselenggara dan cekap. Sama ada anda sedang mengusahakan projek baharu atau mengekalkan kod warisan, memahami dan menggunakan ciri Java 8 boleh meningkatkan produktiviti dan kualiti perisian anda dengan ketara.
Memandangkan Java terus berkembang, menguasai ciri ini akan menyediakan anda untuk kemajuan masa hadapan dalam bahasa dan memastikan kemahiran anda tajam dalam landskap pembangunan perisian yang sentiasa berubah.
Atas ialah kandungan terperinci Java eatures: Panduan Komprehensif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!