6 Ekim 2026 Salı

JEP 519 Compact Object Headers

Giriş
Java 27 ile varsayılan davranış. İlave bir seçenek kullanmaya gerek yok. Açıklaması şöyle
Up to Java 26, the object header was 96 bits (12 bytes) in size by default. Since Java 27, it is 64 bits (8 bytes) by default – and this article explains how that works.

5 Ekim 2026 Pazartesi

JEP 540 Simple JSON API

Giriş
Java 28 ile gelmesi öneriliyor

Şu Json tipleri öneriliyor
JsonObject
JsonArray
JsonString
JsonNumber
JsonBoolean
JsonNull

Örnek
Jackson ile şöyle yapmak lazım
var mapper = new ObjectMapper();
Config config =   mapper.readValue(json,Config.class);

Ancak Simple JSON API ile şöyle yaparız
JsonValue json = Json.parse("""
{ "service": "passport", "port": 8443, "enabled": true } """); String service = json.get("service").asString(); int port = json.get("port").asInt(); boolean enabled = json.get("enabled").asBoolean();

Nested object için şöyle yaparız. Yani user altındaki address nesnesinin altındaki city alanını buluruz.
String city = Json.parse(body)
                 .get("user")
                 .get("address")
                 .get("city")
                 .asString();

30 Eylül 2026 Çarşamba

Type-state Pattern - Phantom Types

Giriş
Type safe Java içindir

Örnek
Şöyle bir kod olsun
sealed interface OrderState
        permits Unpaid, Paid, Shipped {
}
record Unpaid() implements OrderState {}
record Paid() implements OrderState {}
record Shipped() implements OrderState {}

Order şöyle olsun
record Order<S extends OrderState>(
        String id
) {
}

Factory ve transition şöyle olsun
static Order<Unpaid> newOrder(String id) {
    return new Order<>(id);
}

static Order<Paid> pay(Order<Unpaid> order) {
    return new Order<>(order.id());
}

static Order<Shipped> ship(Order<Paid> order) {
    return new Order<>(order.id());
}

Artık API şöyle
Order<Shipped> ship(Order<Paid> order)


2 Temmuz 2026 Perşembe

async-profiler Aracı

Giriş
Flame graph üretir, grafiği nasıl yorumlayacağımızı anlatan bir yazı burada. Kullanım şöyle
asprof -d 30 -f flamegraph.html <PID>

3 Şubat 2026 Salı

Eventual Immutability

Giriş
Bu konuyu ilk defa burada gördüm. Nesneyi mutable olarak yarattıktan sonra belli bir noktada freeze() metodunu çağırıyoruz ve bundan sonra nesne immutable oluyor.