Java 8’de Neler Değişti? Lambda, Stream ve Concurrency Yenilikleri

Bu yazıda Java 8 yenilikleri nelerdir, lambda expressions, Stream API, Optional ve daha birçok modern Java özelliğini örneklerle detaylı şekilde öğreneceksiniz.

Kısa özet: Java 8 ile gelen en önemli yenilikler: Lambda ifadeleri, Stream API, Functional Interface, Optional ve yeni Date-Time API.

1. Functional Interfaces (Fonksiyonel Arayüzler)

Java 8 ile birlikte gelen functional interface, sadece tek bir abstract metoda sahip olan arayüzlerdir. Lambda ifadeleri ile birlikte kullanılır.

@FunctionalInterface
interface Konusabilir {
    void konus(String mesaj);
}
Functional interface'ler @FunctionalInterface anotasyonu ile işaretlenebilir.

2. Lambda Expressions (Lambda İfadeleri)

Lambda ifadeleri, Java’da anonim fonksiyonlar yazmamızı sağlar ve kodu daha sade hale getirir.

List<String> list = Arrays.asList("elma", "armut", "muz");
list.forEach(meyve -> System.out.println(meyve));
Daha az kod, daha yüksek okunabilirlik sağlar.

3. Method References (Metod Referansları)

Lambda ifadelerini daha kısa yazmak için metod referansları kullanılır.

list.forEach(System.out::println);

4. Stream API

Stream API, koleksiyonlar üzerinde fonksiyonel işlemler yapmayı sağlar.

List<String> liste = Arrays.asList("Java", "Python", "C++");

liste.stream()
     .filter(s -> s.startsWith("J"))
     .forEach(System.out::println);
  • filter()
  • map()
  • forEach()
  • count()

5. Try-With-Resources

Kaynakları otomatik kapatmayı sağlayan yapıdır.

try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) {
    System.out.println(br.readLine());
}

6. Optional Class

Optional, null kontrolünü güvenli hale getirir.

Optional<String> isim = Optional.ofNullable(null);
System.out.println(isim.orElse("Varsayılan"));
NullPointerException riskini azaltır.

7. Date Time API

Java 8 ile gelen java.time paketi, tarih ve saat işlemlerini kolaylaştırır.

LocalDate tarih = LocalDate.now();
System.out.println(tarih);
  • LocalDate
  • LocalTime
  • LocalDateTime
  • ZonedDateTime

8. Concurrency Geliştirmeleri

Java 8, paralel programlama için geliştirmeler sunar.

ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.forEach((k, v) -> System.out.println(k + " : " + v));

Sık Sorulan Sorular

Lambda neden önemli?

Daha az kod ve daha okunabilir yapı sağlar.

Stream API ne işe yarar?

Koleksiyonlar üzerinde filtreleme ve veri işleme yapmayı kolaylaştırır.

Optional zorunlu mu?

Zorunlu değildir ama null hatalarını azaltmak için önerilir.


Etiketler: java 8 yenilikleri, lambda expression, stream api java, optional java, java functional interface

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Blog where the most up-to-date software is followed. (En güncel yazılımların takip edildiği blog sitesi)

Java ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *