Skip to content

Java 24 - Kod Örnekleri ve Kullanım Senaryoları

1. Scoped Values ve Structured Concurrency

1.1 Scoped Values Kullanımı

import java.lang.ScopedValue;

public class ScopedValueExample {
    static final ScopedValue<String> USER = ScopedValue.newInstance();

    public static void main(String[] args) {
        ScopedValue.where(USER, "admin").run(() -> {
            System.out.println("Kullanıcı: " + USER.get());
        });
    }
}

ScopedValue ile thread-local değişkenlerin güvenli yönetimi.

1.2 Structured Concurrency ile Paralel Görevler

import java.util.concurrent.StructuredTaskScope;

try (var scope = new StructuredTaskScope.ShutdownOnFailure()) {
    scope.fork(() -> fetchData());
    scope.fork(() -> processData());
    scope.join();
}

Alt görevlerin birlikte başlatılıp, birlikte yönetilmesi.

2. String Templates

String ad = "Ali";
int yas = 30;
String bilgi = STR."Ad: \{ad}, Yaş: \{yas}";
System.out.println(bilgi);

Güvenli ve okunabilir string birleştirme.

3. Class-File API ile Bytecode Analizi

import java.lang.classfile.ClassFile;
import java.nio.file.Path;

ClassFile cf = ClassFile.read(Path.of("MyClass.class"));
cf.methods().forEach(m -> System.out.println(m.name()));

Bytecode üzerinde programatik analiz ve işlem.

4. Foreign Function & Memory API (FFM)

4.1 Native Fonksiyon Çağrısı

import java.foreign.*;
import java.foreign.memory.*;

try (MemorySegment segment = MemorySegment.allocateNative(100)) {
    // Native kütüphane ile çalışma örneği
}

4.2 Bellek Yönetimi

Java heap dışı bellekle güvenli çalışma ve veri paylaşımı.

5. Virtual Threads ile Yüksek Ölçeklenebilirlik

Runnable task = () -> System.out.println("Sanal thread!");
Thread.startVirtualThread(task);

Binlerce thread’i düşük maliyetle başlatma.

6. Preview ve Incubator Özellikler

// Unnamed variables (preview)
(int _, int y) -> y * 2;

Yeni dil denemeleri ve geleceğe hazırlık.

Her örneğin detaylı açıklamaları ve kullanım ipuçları için features.md dosyasına bakınız.